You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by je...@apache.org on 2016/02/23 23:06:06 UTC

[01/10] incubator-geode git commit: GEODE-907: Fixing rebase merge conflicts

Repository: incubator-geode
Updated Branches:
  refs/heads/develop 6e1b05c50 -> c2363f7fc


GEODE-907: Fixing rebase merge conflicts


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/e623d8e1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/e623d8e1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/e623d8e1

Branch: refs/heads/develop
Commit: e623d8e12e33b2850d3cb0b0cdb92782d28fc515
Parents: b4d4ceb
Author: Jens Deppe <jd...@pivotal.io>
Authored: Thu Feb 18 19:49:36 2016 -0800
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Feb 23 14:04:50 2016 -0800

----------------------------------------------------------------------
 .../gemfire/tools/pulse/internal/data/Cluster.java    | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e623d8e1/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
index 471cc01..60b353e 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
@@ -19,10 +19,9 @@
 
 package com.vmware.gemfire.tools.pulse.internal.data;
 
-
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.apache.commons.collections.buffer.CircularFifoBuffer;
@@ -54,13 +53,6 @@ import java.util.TimeZone;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.apache.commons.collections.buffer.CircularFifoBuffer;
-
-import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
-
 /**
  * Class Cluster This class is the Data Model for the data used for the Pulse
  * Web UI.


[10/10] incubator-geode git commit: GEODE-907: Incorporate review feedback

Posted by je...@apache.org.
GEODE-907: Incorporate review feedback


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/c2363f7f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/c2363f7f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/c2363f7f

Branch: refs/heads/develop
Commit: c2363f7fc13fb99c373d245a1ba23170a2351d04
Parents: f42c86d
Author: Jens Deppe <jd...@pivotal.io>
Authored: Mon Feb 22 11:06:05 2016 -0800
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Feb 23 14:04:51 2016 -0800

----------------------------------------------------------------------
 .../tools/pulse/internal/data/Cluster.java      |  8 ++---
 .../tools/pulse/internal/data/DataBrowser.java  | 31 +++++++++++---------
 2 files changed, 21 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c2363f7f/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
index 7d5cac2..5390794 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
@@ -19,6 +19,7 @@
 
 package com.vmware.gemfire.tools.pulse.internal.data;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -3516,7 +3517,7 @@ public class Cluster extends Thread {
     public ObjectNode executeQuery(String queryText, String members, int limit) {
 
       BufferedReader streamReader = null;
-      ObjectNode jsonObject = mapper.createObjectNode();
+      JsonNode jsonObject = null;
       Random rand = new Random();
       int min = 1, max = 5;
       int randomNum = rand.nextInt(max - min + 1) + min;
@@ -3641,8 +3642,7 @@ public class Cluster extends Thread {
           testQueryResultClusterSmallresponseStrBuilder.append(inputStr);
         }
 
-//        jsonObject = new JSONObject(
-//            testQueryResultClusterSmallresponseStrBuilder.toString());
+        jsonObject = mapper.readTree(testQueryResultClusterSmallresponseStrBuilder.toString());
 
         // close stream reader
         streamReader.close();
@@ -3650,7 +3650,7 @@ public class Cluster extends Thread {
         LOGGER.severe(ex.getMessage());
       }
 
-      return jsonObject;
+      return (ObjectNode) jsonObject;
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c2363f7f/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
index cb955e4..5214fec 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
@@ -109,12 +109,14 @@ public class DataBrowser {
       // Get user's query history list
       ObjectNode userQueries = (ObjectNode) queries.get(userId);
 
-      // Remove user's query
-      userQueries.remove(queryId);
-      queries.put(userId, userQueries);
+      if (userQueries != null) {
+        // Remove user's query
+        userQueries.remove(queryId);
+        queries.put(userId, userQueries);
 
-      // Store queries in file back
-      operationStatus = storeQueriesInFile(queries);
+        // Store queries in file back
+        operationStatus = storeQueriesInFile(queries);
+      }
     }
     
     return operationStatus;
@@ -139,15 +141,16 @@ public class DataBrowser {
       // Get user's query history list
       ObjectNode userQueries = (ObjectNode) queries.get(userId);
 
-      Iterator<String> it = userQueries.fieldNames();
-      while (it.hasNext()) {
-        String key = it.next();
-        ObjectNode queryItem = mapper.createObjectNode();
-        queryItem.put("queryId", key);
-        queryItem.put("queryText", userQueries.get(key).toString());
-        queryItem.put("queryDateTime",
-            simpleDateFormat.format(Long.valueOf(key)));
-        queryList.add(queryItem);
+      if (userQueries != null) {
+        Iterator<String> it = userQueries.fieldNames();
+        while (it.hasNext()) {
+          String key = it.next();
+          ObjectNode queryItem = mapper.createObjectNode();
+          queryItem.put("queryId", key);
+          queryItem.put("queryText", userQueries.get(key).toString());
+          queryItem.put("queryDateTime", simpleDateFormat.format(Long.valueOf(key)));
+          queryList.add(queryItem);
+        }
       }
     }
 


[05/10] incubator-geode git commit: GEODE-907: Converted core functionality to use jackson

Posted by je...@apache.org.
GEODE-907: Converted core functionality to use jackson


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/6d3f5560
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/6d3f5560
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/6d3f5560

Branch: refs/heads/develop
Commit: 6d3f55605bd97a3e1172bf05906a9f612c18f1e2
Parents: 0f272db
Author: Jens Deppe <jd...@pivotal.io>
Authored: Thu Feb 18 16:31:15 2016 -0800
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Feb 23 14:04:50 2016 -0800

----------------------------------------------------------------------
 geode-pulse/build.gradle                        |   7 +-
 .../internal/controllers/PulseController.java   | 196 +++++++-----------
 .../tools/pulse/internal/data/Cluster.java      |  29 +--
 .../tools/pulse/internal/data/DataBrowser.java  | 100 ++++-----
 .../pulse/internal/data/IClusterUpdater.java    |   5 +-
 .../pulse/internal/data/JMXDataUpdater.java     |  15 +-
 .../internal/service/ClusterDetailsService.java |  78 ++++---
 .../service/ClusterDiskThroughputService.java   |  45 ++---
 .../service/ClusterGCPausesService.java         |  39 ++--
 .../service/ClusterKeyStatisticsService.java    |  47 ++---
 .../internal/service/ClusterMemberService.java  | 135 +++++++------
 .../service/ClusterMembersRGraphService.java    |  95 ++++-----
 .../service/ClusterMemoryUsageService.java      |  38 ++--
 .../internal/service/ClusterRegionService.java  | 115 +++++------
 .../internal/service/ClusterRegionsService.java | 121 +++++------
 .../service/ClusterSelectedRegionService.java   | 159 ++++++---------
 .../ClusterSelectedRegionsMemberService.java    | 116 ++++++-----
 .../internal/service/ClusterWANInfoService.java |  52 +++--
 .../service/MemberAsynchEventQueuesService.java | 107 +++++-----
 .../internal/service/MemberClientsService.java  | 121 +++++------
 .../internal/service/MemberDetailsService.java  | 120 ++++++-----
 .../service/MemberDiskThroughputService.java    |  67 +++----
 .../internal/service/MemberGCPausesService.java |  55 ++---
 .../service/MemberGatewayHubService.java        | 201 +++++++++----------
 .../service/MemberHeapUsageService.java         |  55 ++---
 .../service/MemberKeyStatisticsService.java     |  76 +++----
 .../internal/service/MemberRegionsService.java  | 146 +++++++-------
 .../internal/service/MembersListService.java    |  43 ++--
 .../pulse/internal/service/PulseService.java    |  10 +-
 .../internal/service/PulseVersionService.java   |  40 ++--
 .../service/QueryStatisticsService.java         | 149 ++++++--------
 .../internal/service/SystemAlertsService.java   |  80 ++++----
 .../controllers/PulseControllerJUnitTest.java   | 128 +++++++++---
 .../pulse/testbed/PropMockDataUpdater.java      |  34 ++--
 .../pulse/tests/junit/BaseServiceTest.java      |  87 ++++----
 35 files changed, 1310 insertions(+), 1601 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/build.gradle
----------------------------------------------------------------------
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index cd3a744..cf07751 100755
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -67,6 +67,12 @@ sourceSets {
   main {
     output.dir(generatedResources, builtBy: 'copyGemFireVersionFile')
   }
+
+  test {
+    resources {
+      srcDir 'src/main/webapp/WEB-INF'
+    }
+  }
 }
 
 task copyGemFireVersionFile(type: Copy) {
@@ -89,7 +95,6 @@ idea.module.iml {
   }
 }
 
-
 artifacts {
   archives war
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
index 6abb2de..e70d3f1 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
@@ -19,35 +19,32 @@
 
 package com.vmware.gemfire.tools.pulse.internal.controllers;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseVersion;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
 import com.vmware.gemfire.tools.pulse.internal.service.PulseService;
 import com.vmware.gemfire.tools.pulse.internal.service.PulseServiceFactory;
 import com.vmware.gemfire.tools.pulse.internal.service.SystemAlertsService;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * Class PulseController
@@ -61,6 +58,8 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Controller
 public class PulseController {
 
+  private static final PulseLogWriter LOGGER = PulseLogWriter.getLogger();
+
   // CONSTANTS
   private final String DEFAULT_EXPORT_FILENAME = "DataBrowserQueryResult.json";
   private final String QUERYSTRING_PARAM_ACTION = "action";
@@ -74,29 +73,31 @@ public class PulseController {
   private String ERROR_REPSONSE_QUERYNOTFOUND = "No queries found";
   private String ERROR_REPSONSE_QUERYIDMISSING = "Query id is missing";
 
-  private final JSONObject NoDataJSON = new JSONObject();
+  private static final String EMPTY_JSON = "{}";
 
   // Shared object to hold pulse version details
   public static PulseVersion pulseVersion = new PulseVersion();
+
   //default is gemfire
   private static String pulseProductSupport = PulseConstants.PRODUCT_NAME_GEMFIRE;
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   @Autowired
   PulseServiceFactory pulseServiceFactory;
 
   @RequestMapping(value = "/pulseUpdate", method = RequestMethod.POST)
   public void getPulseUpdate(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     String pulseData = request.getParameter("pulseData");
 
-    JSONObject responseMap = new JSONObject();
+    ObjectNode responseMap = mapper.createObjectNode();
 
-    JSONObject requestMap = null;
+    JsonNode requestMap = null;
 
     try {
-      requestMap = new JSONObject(pulseData);
-      Iterator<?> keys = requestMap.keys();
+      requestMap = mapper.readTree(pulseData);
+      Iterator<?> keys = requestMap.fieldNames();
 
       // Execute Services
       while (keys.hasNext()) {
@@ -104,17 +105,12 @@ public class PulseController {
         try {
           PulseService pulseService = pulseServiceFactory
               .getPulseServiceInstance(serviceName);
-          responseMap.put(serviceName, pulseService.execute(request));
+          responseMap.put(serviceName, pulseService.tempExecute(request));
         } catch (Exception serviceException) {
           LOGGER.warning("serviceException [for service "+serviceName+"] = " + serviceException.getMessage());
-          responseMap.put(serviceName, NoDataJSON);
+          responseMap.put(serviceName, EMPTY_JSON);
         }
       }
-
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(new JSONException(eJSON),
-          new String[] { "requestMap:"
-              + ((requestMap == null) ? "" : requestMap) });
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occurred : " + e.getMessage());
@@ -128,16 +124,13 @@ public class PulseController {
   @RequestMapping(value = "/authenticateUser", method = RequestMethod.GET)
   public void authenticateUser(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     try {
       responseJSON.put("isUserLoggedIn", this.isUserLoggedIn(request));
       // Send json response
       response.getOutputStream().write(responseJSON.toString().getBytes());
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(eJSON, null);
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occurred : " + e.getMessage());
@@ -152,7 +145,6 @@ public class PulseController {
    * @return boolean
    */
   protected boolean isUserLoggedIn(HttpServletRequest request) {
-
     return null != request.getUserPrincipal();
   }
 
@@ -171,9 +163,9 @@ public class PulseController {
   @RequestMapping(value = "/pulseVersion", method = RequestMethod.GET)
   public void pulseVersion(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
+
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     try {
       // Reference to repository
@@ -186,23 +178,13 @@ public class PulseController {
       repository.setPulseWebAppUrl(pulseWebAppUrl);
 
       // Response
-      responseJSON.put("pulseVersion",
-          PulseController.pulseVersion.getPulseVersion());
-      responseJSON.put("buildId",
-          PulseController.pulseVersion.getPulseBuildId());
-      responseJSON.put("buildDate",
-          PulseController.pulseVersion.getPulseBuildDate());
-      responseJSON.put("sourceDate",
-          PulseController.pulseVersion.getPulseSourceDate());
-      responseJSON.put("sourceRevision",
-          PulseController.pulseVersion.getPulseSourceRevision());
-      responseJSON.put("sourceRepository",
-          PulseController.pulseVersion.getPulseSourceRepository());
-
-    } catch (JSONException eJSON) {
-      LOGGER
-          .logJSONError(eJSON, new String[] { "pulseVersionData :"
-              + PulseController.pulseVersion });
+      responseJSON.put("pulseVersion", PulseController.pulseVersion.getPulseVersion());
+      responseJSON.put("buildId", PulseController.pulseVersion.getPulseBuildId());
+      responseJSON.put("buildDate", PulseController.pulseVersion.getPulseBuildDate());
+      responseJSON.put("sourceDate", PulseController.pulseVersion.getPulseSourceDate());
+      responseJSON.put("sourceRevision", PulseController.pulseVersion.getPulseSourceRevision());
+      responseJSON.put("sourceRepository", PulseController.pulseVersion.getPulseSourceRepository());
+
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occured : " + e.getMessage());
@@ -214,11 +196,10 @@ public class PulseController {
   }
 
   @RequestMapping(value = "/clearAlerts", method = RequestMethod.GET)
-  public void clearAlerts(HttpServletRequest request,
-      HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
+  public void clearAlerts(HttpServletRequest request, HttpServletResponse response) throws IOException {
     int alertType;
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
+
     try {
       alertType = Integer.valueOf(request.getParameter("alertType"));
     } catch (NumberFormatException e) {
@@ -248,9 +229,6 @@ public class PulseController {
         responseJSON.put("connectedFlag", isGFConnected);
         responseJSON.put("connectedErrorMsg", cluster.getConnectionErrorMsg());
       }
-
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(eJSON, null);
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occurred : " + e.getMessage());
@@ -264,9 +242,8 @@ public class PulseController {
   @RequestMapping(value = "/acknowledgeAlert", method = RequestMethod.GET)
   public void acknowledgeAlert(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     int alertId;
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     try {
       alertId = Integer.valueOf(request.getParameter("alertId"));
@@ -286,8 +263,6 @@ public class PulseController {
       // set alert is acknowledged
       cluster.acknowledgeAlert(alertId);
       responseJSON.put("status", "deleted");
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(eJSON, null);
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occured : " + e.getMessage());
@@ -301,13 +276,12 @@ public class PulseController {
   @RequestMapping(value = "/dataBrowserRegions", method = RequestMethod.GET)
   public void dataBrowserRegions(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-    List<JSONObject> regionsData = Collections.emptyList();
+    ObjectNode responseJSON = mapper.createObjectNode();
+    ArrayNode regionsData = mapper.createArrayNode();
 
     try {
       // getting cluster's Regions
@@ -316,14 +290,6 @@ public class PulseController {
       responseJSON.put("clusterRegions", regionsData);
       responseJSON.put("connectedFlag", cluster.isConnectedFlag());
       responseJSON.put("connectedErrorMsg", cluster.getConnectionErrorMsg());
-
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(
-          eJSON,
-          new String[] { "clusterName:" + cluster.getServerName(),
-              "clusterRegions:" + regionsData,
-              "connectedFlag:" + cluster.isConnectedFlag(),
-              "connectedErrorMsg:" + cluster.getConnectionErrorMsg() });
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occured : " + e.getMessage());
@@ -338,38 +304,39 @@ public class PulseController {
    * This method creates json for list of cluster regions
    * 
    * @param cluster
-   * @return JSONObject Array List
+   * @return ArrayNode JSON array
    */
-  private List<JSONObject> getRegionsJson(Cluster cluster) throws JSONException {
+  private ArrayNode getRegionsJson(Cluster cluster) {
 
-    Collection<Cluster.Region> clusterRegions = cluster.getClusterRegions()
-        .values();
-    List<JSONObject> regionsListJson = new ArrayList<JSONObject>();
+    Collection<Cluster.Region> clusterRegions = cluster.getClusterRegions().values();
+    ArrayNode regionsListJson = mapper.createArrayNode();
 
     if (!clusterRegions.isEmpty()) {
       for (Cluster.Region region : clusterRegions) {
-        JSONObject regionJSON = new JSONObject();
-
+        ObjectNode regionJSON = mapper.createObjectNode();
         regionJSON.put("name", region.getName());
         regionJSON.put("fullPath", region.getFullPath());
         regionJSON.put("regionType", region.getRegionType());
-        if(region.getRegionType().contains("PARTITION")){
+
+        if (region.getRegionType().contains("PARTITION")) {
           regionJSON.put("isPartition", true);
-        }else{
+        } else {
           regionJSON.put("isPartition", false);
         }
+
         regionJSON.put("memberCount", region.getMemberCount());
         List<String> regionsMembers = region.getMemberName();
-        JSONArray jsonRegionMembers = new JSONArray();
+        ArrayNode jsonRegionMembers = mapper.createArrayNode();
+
         for (int i = 0; i < regionsMembers.size(); i++) {
           Cluster.Member member = cluster.getMembersHMap().get(
               regionsMembers.get(i));
-          JSONObject jsonMember = new JSONObject();
+          ObjectNode jsonMember = mapper.createObjectNode();
           jsonMember.put("key", regionsMembers.get(i));
           jsonMember.put("id", member.getId());
           jsonMember.put("name", member.getName());
 
-          jsonRegionMembers.put(jsonMember);
+          jsonRegionMembers.add(jsonMember);
         }
 
         regionJSON.put("members", jsonRegionMembers);
@@ -382,7 +349,6 @@ public class PulseController {
   @RequestMapping(value = "/dataBrowserQuery", method = RequestMethod.GET)
   public void dataBrowserQuery(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     // get query string
     String query = request.getParameter("query");
     String members = request.getParameter("members");
@@ -397,7 +363,7 @@ public class PulseController {
       }
     }
 
-    JSONObject queryResult = new JSONObject();
+    ObjectNode queryResult = mapper.createObjectNode();
     try {
 
       if (StringUtils.isNotNullNotEmptyNotWhiteSpace(query)) {
@@ -415,8 +381,6 @@ public class PulseController {
           cluster.addQueryInHistory(escapedQuery, userName);
         }
       }
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(eJSON, new String[] { "queryResult:" + queryResult });
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occured : " + e.getMessage());
@@ -429,12 +393,11 @@ public class PulseController {
   @RequestMapping(value = "/dataBrowserQueryHistory", method = RequestMethod.GET)
   public void dataBrowserQueryHistory(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
-    JSONObject responseJSON = new JSONObject();
-    JSONArray queryResult = null;
+    ObjectNode responseJSON = mapper.createObjectNode();
+    ArrayNode queryResult = null;
     String action = "";
-    try {
 
+    try {
       // get cluster object
       Cluster cluster = Repository.get().getCluster();
       String userName = request.getUserPrincipal().getName();
@@ -465,10 +428,6 @@ public class PulseController {
       // Get list of past executed queries
       queryResult = cluster.getQueryHistoryByUserId(userName);
       responseJSON.put("queryHistory", queryResult);
-
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(eJSON, new String[] { "action:" + action,
-          "queryResult:" + queryResult });
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occured : " + e.getMessage());
@@ -488,11 +447,9 @@ public class PulseController {
     response.setHeader("Cache-Control", "");
     response.setHeader("Content-type", "text/plain");
     if (StringUtils.isNotNullNotEmptyNotWhiteSpace(filename)) {
-      response.setHeader("Content-Disposition", "attachment; filename="
-          + filename);
+      response.setHeader("Content-Disposition", "attachment; filename=" + filename);
     } else {
-      response.setHeader("Content-Disposition", "attachment; filename="
-          + DEFAULT_EXPORT_FILENAME);
+      response.setHeader("Content-Disposition", "attachment; filename=" + DEFAULT_EXPORT_FILENAME);
     }
 
     if (!StringUtils.isNotNullNotEmptyNotWhiteSpace(resultContent)) {
@@ -505,19 +462,16 @@ public class PulseController {
   @RequestMapping(value = "/pulseProductSupport", method = RequestMethod.GET)
   public void getConfiguredPulseProduct(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
-    JSONObject responseJSON = new JSONObject();
+      ObjectNode responseJSON = mapper.createObjectNode();
 
     try {
       responseJSON.put("product", pulseProductSupport);
 
       // Send json response
       response.getOutputStream().write(responseJSON.toString().getBytes());
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(eJSON, null);
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
-        LOGGER.fine("Exception Occured : " + e.getMessage());
+        LOGGER.fine("Exception Occurred : " + e.getMessage());
       }
     }
   }
@@ -525,8 +479,8 @@ public class PulseController {
   @RequestMapping(value = "/getQueryStatisticsGridModel", method = RequestMethod.GET)
   public void getQueryStatisticsGridModel(HttpServletRequest request,
       HttpServletResponse response) throws IOException {
-    PulseLogWriter LOGGER = PulseLogWriter.getLogger();
-    JSONObject responseJSON = new JSONObject();
+
+    ObjectNode responseJSON = mapper.createObjectNode();
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
     String userName = request.getUserPrincipal().getName();
@@ -536,21 +490,20 @@ public class PulseController {
       String[] arrColAttribs = Cluster.Statement.getGridColumnAttributes();
       int[] arrColWidths = Cluster.Statement.getGridColumnWidths();
 
-      JSONArray colNamesList = new JSONArray();
+      ArrayNode colNamesList = mapper.createArrayNode();
       for (int i = 0; i < arrColNames.length; ++i) {
-        colNamesList.put(arrColNames[i]);
+        colNamesList.add(arrColNames[i]);
       }
 
-      JSONArray colModelList = new JSONArray();
-      JSONObject columnJSON = null;
+      ArrayNode colModelList = mapper.createArrayNode();
       for (int i = 0; i < arrColAttribs.length; ++i) {
-        columnJSON = new JSONObject();
+        ObjectNode columnJSON = mapper.createObjectNode();
         columnJSON.put("name", arrColAttribs[i]);
         columnJSON.put("index", arrColAttribs[i]);
         columnJSON.put("width", arrColWidths[i]);
         columnJSON.put("sortable", "true");
         columnJSON.put("sorttype", ((i == 0) ? "String" : "integer"));
-        colModelList.put(columnJSON);
+        colModelList.add(columnJSON);
       }
 
       responseJSON.put("columnNames", colNamesList);
@@ -560,8 +513,6 @@ public class PulseController {
 
       // Send json response
       response.getOutputStream().write(responseJSON.toString().getBytes());
-    } catch (JSONException eJSON) {
-      LOGGER.logJSONError(eJSON, null);
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine("Exception Occured : " + e.getMessage());
@@ -583,5 +534,4 @@ public class PulseController {
   public static void setPulseProductSupport(String pulseProductSupport) {
     PulseController.pulseProductSupport = pulseProductSupport;
   }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
index 309fdf7..5c6bb40 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
@@ -54,6 +54,11 @@ import java.util.TimeZone;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.apache.commons.collections.buffer.CircularFifoBuffer;
+
 /**
  * Class Cluster This class is the Data Model for the data used for the Pulse
  * Web UI.
@@ -162,8 +167,11 @@ public class Cluster extends Thread {
   private boolean stopUpdates = false;
 
   private static final int MAX_HOSTS = 40;
+
   private final List<String> hostNames = new ArrayList<String>();
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   public Object[] getStatisticTrend(int trendId) {
 
     Object[] returnArray = null;
@@ -216,7 +224,6 @@ public class Cluster extends Thread {
         returnArray = this.garbageCollectionTrend.toArray();
       }
       break;
-
     }
 
     return returnArray;
@@ -2881,13 +2888,12 @@ public class Cluster extends Thread {
     this.dataBrowser = dataBrowser;
   }
 
-  public JSONObject executeQuery(String queryText, String members, int limit)
-      throws JSONException {
+  public ObjectNode executeQuery(String queryText, String members, int limit) {
     // Execute data browser query
     return this.updater.executeQuery(queryText, members, limit);
   }
 
-  public JSONArray getQueryHistoryByUserId(String userId) throws JSONException {
+  public ArrayNode getQueryHistoryByUserId(String userId) {
     return this.getDataBrowser().getQueryHistoryByUserId(userId);
   }
 
@@ -3513,11 +3519,10 @@ public class Cluster extends Thread {
     private int queryCounter = 0;
 
     @Override
-    public JSONObject executeQuery(String queryText, String members, int limit)
-        throws JSONException {
+    public ObjectNode executeQuery(String queryText, String members, int limit) {
 
       BufferedReader streamReader = null;
-      JSONObject jsonObject = new JSONObject();
+      ObjectNode jsonObject = mapper.createObjectNode();
       Random rand = new Random();
       int min = 1, max = 5;
       int randomNum = rand.nextInt(max - min + 1) + min;
@@ -3530,8 +3535,7 @@ public class Cluster extends Thread {
       }
 
       try {
-        ClassLoader classLoader = Thread.currentThread()
-            .getContextClassLoader();
+        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
 
         switch (queryCounter++) {
         case 1:
@@ -3643,14 +3647,11 @@ public class Cluster extends Thread {
           testQueryResultClusterSmallresponseStrBuilder.append(inputStr);
         }
 
-        jsonObject = new JSONObject(
-            testQueryResultClusterSmallresponseStrBuilder.toString());
+//        jsonObject = new JSONObject(
+//            testQueryResultClusterSmallresponseStrBuilder.toString());
 
         // close stream reader
         streamReader.close();
-
-      } catch (JSONException ex) {
-        LOGGER.severe(ex.getMessage());
       } catch (IOException ex) {
         LOGGER.severe(ex.getMessage());
       }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
index f3b4493..88d5e32 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
@@ -30,6 +30,10 @@ import java.util.Iterator;
 import java.util.ResourceBundle;
 import java.util.Scanner;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
 import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
 import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
@@ -52,6 +56,8 @@ public class DataBrowser {
   private SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
       PulseConstants.PULSE_QUERY_HISTORY_DATE_PATTERN);
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   /**
    * addQueryInHistory method adds user's query into query history file
    * 
@@ -61,35 +67,25 @@ public class DataBrowser {
    *          Query text to execute
    */
   public boolean addQueryInHistory(String queryText, String userId) {
-
     boolean operationStatus = false;
     if (StringUtils.isNotNullNotEmptyNotWhiteSpace(queryText)
         && StringUtils.isNotNullNotEmptyNotWhiteSpace(userId)) {
 
       // Fetch all queries from query log file
-      JSONObject queries = fetchAllQueriesFromFile();
+      ObjectNode queries = fetchAllQueriesFromFile();
 
       // Get user's query history list
-      JSONObject userQueries = null;
-      try {
-        userQueries = queries.getJSONObject(userId);
-      } catch (JSONException e) {
-        userQueries = new JSONObject();
+      ObjectNode userQueries = (ObjectNode) queries.get(userId);
+      if (userQueries == null) {
+        userQueries = mapper.createObjectNode();
       }
 
       // Add query in user's query history list
-      try {
-        userQueries.put(Long.toString(System.currentTimeMillis()), queryText);
-        queries.put(userId, userQueries);
-      } catch (JSONException e) {
-        if (LOGGER.fineEnabled()) {
-          LOGGER.fine("JSONException Occured while adding user's query : " + e.getMessage());
-        }
-      }
+      userQueries.put(Long.toString(System.currentTimeMillis()), queryText);
+      queries.put(userId, userQueries);
 
       // Store queries in file back
       operationStatus = storeQueriesInFile(queries);
-
     }
 
     return operationStatus;
@@ -111,29 +107,17 @@ public class DataBrowser {
         && StringUtils.isNotNullNotEmptyNotWhiteSpace(userId)) {
 
       // Fetch all queries from query log file
-      JSONObject queries = fetchAllQueriesFromFile();
+      ObjectNode queries = fetchAllQueriesFromFile();
 
       // Get user's query history list
-      JSONObject userQueries = null;
-      try {
-        userQueries = queries.getJSONObject(userId);
-      } catch (JSONException e) {
-        userQueries = new JSONObject();
-      }
+      ObjectNode userQueries = (ObjectNode) queries.get(userId);
 
       // Remove user's query
-      try {
-        userQueries.remove(queryId);
-        queries.put(userId, userQueries);
-      } catch (JSONException e) {
-        if (LOGGER.fineEnabled()) {
-          LOGGER.fine("JSONException Occured while deleting user's query : " + e.getMessage());
-        }
-      }
+      userQueries.remove(queryId);
+      queries.put(userId, userQueries);
 
       // Store queries in file back
       operationStatus = storeQueriesInFile(queries);
-
     }
     
     return operationStatus;
@@ -146,38 +130,27 @@ public class DataBrowser {
    * @param userId
    *          Logged in User's Id
    */
-  public JSONArray getQueryHistoryByUserId(String userId) {
+  public ArrayNode getQueryHistoryByUserId(String userId) {
 
-    JSONArray queryList = new JSONArray();
+    ArrayNode queryList = mapper.createArrayNode();
 
     if (StringUtils.isNotNullNotEmptyNotWhiteSpace(userId)) {
 
       // Fetch all queries from query log file
-      JSONObject queries = fetchAllQueriesFromFile();
+      ObjectNode queries = fetchAllQueriesFromFile();
       
       // Get user's query history list
-      JSONObject userQueries = null;
-      try {
-        userQueries = queries.getJSONObject(userId);
-      } catch (JSONException e) {
-        userQueries = new JSONObject();
-      }
-
-      try {
-        Iterator<?> it = userQueries.keys();
-        while (it.hasNext()) {
-          String key = (String) it.next();
-          JSONObject queryItem = new JSONObject();
-          queryItem.put("queryId", key);
-          queryItem.put("queryText", userQueries.get(key).toString());
-          queryItem.put("queryDateTime",
-              simpleDateFormat.format(Long.valueOf(key)));
-          queryList.put(queryItem);
-        }
-      } catch (JSONException e) {
-        if (LOGGER.fineEnabled()) {
-          LOGGER.fine("JSONException Occured: " + e.getMessage());
-        }
+      ObjectNode userQueries = (ObjectNode) queries.get(userId);
+
+      Iterator<String> it = userQueries.fieldNames();
+      while (it.hasNext()) {
+        String key = it.next();
+        ObjectNode queryItem = mapper.createObjectNode();
+        queryItem.put("queryId", key);
+        queryItem.put("queryText", userQueries.get(key).toString());
+        queryItem.put("queryDateTime",
+            simpleDateFormat.format(Long.valueOf(key)));
+        queryList.add(queryItem);
       }
     }
 
@@ -189,15 +162,14 @@ public class DataBrowser {
    * 
    * @return Properties A collection queries in form of key and values
    */
-  private JSONObject fetchAllQueriesFromFile() {
+  private ObjectNode fetchAllQueriesFromFile() {
     InputStream inputStream = null;
-    JSONObject queriesJSON = new JSONObject();
+    JsonNode queriesJSON = mapper.createObjectNode();
 
     try {
       inputStream = new FileInputStream(Repository.get().getPulseConfig().getQueryHistoryFileName());
-      String inputStreamString = new Scanner(inputStream, "UTF-8")
-          .useDelimiter("\\A").next();
-      queriesJSON = new JSONObject(inputStreamString);
+      String inputStreamString = new Scanner(inputStream, "UTF-8").useDelimiter("\\A").next();
+      queriesJSON = mapper.readTree(inputStreamString);
     } catch (FileNotFoundException e) {
       if (LOGGER.fineEnabled()) {
         LOGGER.fine(resourceBundle
@@ -221,7 +193,7 @@ public class DataBrowser {
       }
     }
 
-    return queriesJSON;
+    return (ObjectNode) queriesJSON;
   }
 
   /**
@@ -229,7 +201,7 @@ public class DataBrowser {
    * 
    * @return Boolean true is operation is successful, false otherwise
    */
-  private boolean storeQueriesInFile(JSONObject queries) {
+  private boolean storeQueriesInFile(ObjectNode queries) {
     boolean operationStatus = false;
     FileOutputStream fileOut = null;
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/IClusterUpdater.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/IClusterUpdater.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/IClusterUpdater.java
index 2b7e1a4..27abc21 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/IClusterUpdater.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/IClusterUpdater.java
@@ -19,8 +19,7 @@
 
 package com.vmware.gemfire.tools.pulse.internal.data;
 
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 
 /**
  * Interface having updateData() function which is getting Override by both
@@ -33,5 +32,5 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 public interface IClusterUpdater {
   boolean updateData();
 
-  JSONObject executeQuery(String queryText, String members, int limit) throws JSONException;
+  ObjectNode executeQuery(String queryText, String members, int limit);
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java
index 8e4557a..adb7532 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java
@@ -19,10 +19,10 @@
 
 package com.vmware.gemfire.tools.pulse.internal.data;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import com.vmware.gemfire.tools.pulse.internal.data.JmxManagerFinder.JmxManagerInfo;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 
@@ -101,6 +101,8 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
   private final String opSignature[] = { String.class.getName(),
       String.class.getName(), int.class.getName() };
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   /**
    * constructor used for creating JMX connection
    */
@@ -2377,15 +2379,12 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
   }
 
   @Override
-  public JSONObject executeQuery(String queryText, String members, int limit)
-      throws JSONException {
+  public ObjectNode executeQuery(String queryText, String members, int limit) {
 
-    JSONObject queryResult = new JSONObject();
+    ObjectNode queryResult = mapper.createObjectNode();
 
     if (this.mbs != null && this.systemMBeans != null) {
-
       Object opParams[] = { queryText, members, limit };
-
       for (ObjectName sysMBean : this.systemMBeans) {
         try {
           String resultString = (String) (this.mbs.invoke(sysMBean,
@@ -2393,7 +2392,7 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
               this.opSignature));
 
           // Convert result into JSON
-          queryResult = new JSONObject(resultString);
+          queryResult = (ObjectNode) mapper.readTree(resultString);
 
         } catch (Exception e) {
           // Send error into result

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java
index 2efb6aa..35f9a81 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java
@@ -19,19 +19,17 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import java.text.DecimalFormat;
-
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
+import java.text.DecimalFormat;
 
 /**
  * Class ClusterDetailsService
@@ -48,7 +46,9 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 @Scope("singleton")
 public class ClusterDetailsService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     String userName = request.getUserPrincipal().getName();
 
@@ -56,7 +56,7 @@ public class ClusterDetailsService implements PulseService {
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     Cluster.Alert[] alertsList = cluster.getAlertsList();
     int severeAlertCount = 0;
@@ -75,35 +75,31 @@ public class ClusterDetailsService implements PulseService {
         infoAlertCount++;
       }
     }
-    try {
-      // getting basic details of Cluster
-      responseJSON.put("clusterName", cluster.getServerName());
-      responseJSON.put("severeAlertCount", severeAlertCount);
-      responseJSON.put("errorAlertCount", errorAlertCount);
-      responseJSON.put("warningAlertCount", warningAlertCount);
-      responseJSON.put("infoAlertCount", infoAlertCount);
-
-      responseJSON.put("totalMembers", cluster.getMemberCount());
-      responseJSON.put("servers", cluster.getServerCount());
-      responseJSON.put("clients", cluster.getClientConnectionCount());
-      responseJSON.put("locators", cluster.getLocatorCount());
-      responseJSON.put("totalRegions", cluster.getTotalRegionCount());
-      Long heapSize = cluster.getTotalHeapSize();
-
-      DecimalFormat df2 = new DecimalFormat(
-          PulseConstants.DECIMAL_FORMAT_PATTERN);
-      Double heapS = heapSize.doubleValue() / 1024;
-      responseJSON.put("totalHeap", Double.valueOf(df2.format(heapS)));
-      responseJSON.put("functions", cluster.getRunningFunctionCount());
-      responseJSON.put("uniqueCQs", cluster.getRegisteredCQCount());
-      responseJSON.put("subscriptions", cluster.getSubscriptionCount());
-      responseJSON.put("txnCommitted", cluster.getTxnCommittedCount());
-      responseJSON.put("txnRollback", cluster.getTxnRollbackCount());
-      responseJSON.put("userName", userName);
-
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
+    // getting basic details of Cluster
+    responseJSON.put("clusterName", cluster.getServerName());
+    responseJSON.put("severeAlertCount", severeAlertCount);
+    responseJSON.put("errorAlertCount", errorAlertCount);
+    responseJSON.put("warningAlertCount", warningAlertCount);
+    responseJSON.put("infoAlertCount", infoAlertCount);
+
+    responseJSON.put("totalMembers", cluster.getMemberCount());
+    responseJSON.put("servers", cluster.getServerCount());
+    responseJSON.put("clients", cluster.getClientConnectionCount());
+    responseJSON.put("locators", cluster.getLocatorCount());
+    responseJSON.put("totalRegions", cluster.getTotalRegionCount());
+    Long heapSize = cluster.getTotalHeapSize();
+
+    DecimalFormat df2 = new DecimalFormat(
+        PulseConstants.DECIMAL_FORMAT_PATTERN);
+    Double heapS = heapSize.doubleValue() / 1024;
+    responseJSON.put("totalHeap", Double.valueOf(df2.format(heapS)));
+    responseJSON.put("functions", cluster.getRunningFunctionCount());
+    responseJSON.put("uniqueCQs", cluster.getRegisteredCQCount());
+    responseJSON.put("subscriptions", cluster.getSubscriptionCount());
+    responseJSON.put("txnCommitted", cluster.getTxnCommittedCount());
+    responseJSON.put("txnRollback", cluster.getTxnRollbackCount());
+    responseJSON.put("userName", userName);
+
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
index 0c1b56a..0a45ef6 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
@@ -19,17 +19,15 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class ClusterDiskThroughput This class contains implementations for getting
@@ -44,36 +42,31 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 @Scope("singleton")
 public class ClusterDiskThroughputService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-    // clucter's Throughout Writes trend added to json response object
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    // cluster's Throughout Writes trend added to json response object
     // CircularFifoBuffer throughoutWritesTrend =
     // cluster.getThroughoutWritesTrend();
     Float currentThroughputWrites = cluster.getDiskWritesRate();
     Float currentThroughputReads = cluster.getDiskReadsRate();
 
-    try {
-      responseJSON.put("currentThroughputReads", currentThroughputReads);
-      responseJSON.put(
-          "throughputReads",
-          new JSONArray(cluster
-              .getStatisticTrend(Cluster.CLUSTER_STAT_THROUGHPUT_READS)));
+    responseJSON.put("currentThroughputReads", currentThroughputReads);
+    responseJSON.put("throughputReads",
+        mapper.valueToTree(cluster.getStatisticTrend(Cluster.CLUSTER_STAT_THROUGHPUT_READS)));
 
-      responseJSON.put("currentThroughputWrites", currentThroughputWrites);
-      responseJSON.put(
-          "throughputWrites",
-          new JSONArray(cluster
-              .getStatisticTrend(Cluster.CLUSTER_STAT_THROUGHPUT_WRITES)));
+    responseJSON.put("currentThroughputWrites", currentThroughputWrites);
+    responseJSON.put("throughputWrites",
+        mapper.valueToTree( cluster.getStatisticTrend(Cluster.CLUSTER_STAT_THROUGHPUT_WRITES)));
 
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
index 7c44234..606fc12 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
@@ -19,17 +19,16 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class ClusterGCPausesService
@@ -46,26 +45,24 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 @Scope("singleton")
 public class ClusterGCPausesService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-    // clucter's GC Pauses trend added to json response object
+    ObjectNode responseJSON = mapper.createObjectNode();
+    // cluster's GC Pauses trend added to json response object
 
-    try {
-      responseJSON.put("currentGCPauses", cluster.getGarbageCollectionCount());
-      responseJSON.put(
-          "gCPausesTrend",
-          new JSONArray(cluster
-              .getStatisticTrend(Cluster.CLUSTER_STAT_GARBAGE_COLLECTION))); // new
-                                                                             // JSONArray(array)
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+    ArrayNode pauses = mapper.createArrayNode();
+    for (Object obj : cluster.getStatisticTrend(Cluster.CLUSTER_STAT_GARBAGE_COLLECTION)) {
+      pauses.add(obj.toString());
     }
+    responseJSON.put("currentGCPauses", cluster.getGarbageCollectionCount());
+    responseJSON.put("gCPausesTrend", pauses);
+    // Send json response
+    return responseJSON;
   }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java
index 8ca4c03..ae9e5cf 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java
@@ -19,17 +19,15 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class ClusterKeyStatisticsService
@@ -46,34 +44,27 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 @Scope("singleton")
 public class ClusterKeyStatisticsService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    responseJSON.put("writePerSecTrend",
+        mapper.valueToTree(cluster.getStatisticTrend(Cluster.CLUSTER_STAT_WRITES_PER_SECOND)));
+
+    responseJSON.put("readPerSecTrend",
+        mapper.valueToTree(cluster.getStatisticTrend(Cluster.CLUSTER_STAT_READ_PER_SECOND)));
 
-    try {
-      // clucter's Read write information
-      responseJSON.put(
-          "writePerSecTrend",
-          new JSONArray(cluster
-              .getStatisticTrend(Cluster.CLUSTER_STAT_WRITES_PER_SECOND)));
-      responseJSON.put(
-          "readPerSecTrend",
-          new JSONArray(cluster
-              .getStatisticTrend(Cluster.CLUSTER_STAT_READ_PER_SECOND)));
-      responseJSON.put(
-          "queriesPerSecTrend",
-          new JSONArray(cluster
-              .getStatisticTrend(Cluster.CLUSTER_STAT_QUERIES_PER_SECOND)));
+    responseJSON.put("queriesPerSecTrend",
+        mapper.valueToTree(cluster.getStatisticTrend(Cluster.CLUSTER_STAT_QUERIES_PER_SECOND)));
 
-      // Send json response
-      return responseJSON;
+    // Send json response
+    return responseJSON;
 
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
index 80e0b2e..296a45d 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
@@ -19,12 +19,13 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.util.TimeUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
@@ -49,84 +50,82 @@ import java.util.List;
 @Scope("singleton")
 public class ClusterMemberService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   private final String HEAP_USAGE = "heapUsage";
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     Cluster.Member[] clusterMembersList = cluster.getMembers();
 
     // create members json
-    List<JSONObject> memberListJson = new ArrayList<JSONObject>();
-    try {
-      for (Cluster.Member clusterMember : clusterMembersList) {
-        JSONObject memberJSON = new JSONObject();
-        // getting members detail
-        memberJSON.put("gemfireVersion", clusterMember.getGemfireVersion());
-        memberJSON.put("memberId", clusterMember.getId());
-        memberJSON.put("name", clusterMember.getName());
-        memberJSON.put("host", clusterMember.getHost());
-        memberJSON.put("hostnameForClients", clusterMember.getHostnameForClients());
-
-        List<String> serverGroups = clusterMember.getServerGroups();
-        if(serverGroups.size() == 0){
-          serverGroups = new ArrayList<String>();
-          serverGroups.add(PulseConstants.DEFAULT_SERVER_GROUP);
-        }
-        memberJSON.put("serverGroups", serverGroups);
-        
-        List<String> redundancyZones = clusterMember.getRedundancyZones();
-        if(redundancyZones.size() == 0){
-          redundancyZones = new ArrayList<String>();
-          redundancyZones.add(PulseConstants.DEFAULT_REDUNDANCY_ZONE);
-        }
-        memberJSON.put("redundancyZones", redundancyZones);
-
-        DecimalFormat df2 = new DecimalFormat(
-            PulseConstants.DECIMAL_FORMAT_PATTERN);
-
-        long usedHeapSize = cluster.getUsedHeapSize();
-        long currentHeap = clusterMember.getCurrentHeapSize();
-        if (usedHeapSize > 0) {
-          float heapUsage = ((float) currentHeap / (float) usedHeapSize) * 100;
-          memberJSON
-              .put(this.HEAP_USAGE, Double.valueOf(df2.format(heapUsage)));
-        } else {
-          memberJSON.put(this.HEAP_USAGE, 0);
-        }
-        Float currentCPUUsage = clusterMember.getCpuUsage();
-
-        memberJSON.put("cpuUsage", Float.valueOf(df2.format(currentCPUUsage)));
-        memberJSON.put("currentHeapUsage", clusterMember.getCurrentHeapSize());
-        memberJSON.put("isManager", clusterMember.isManager());
-        memberJSON.put("uptime",
-            TimeUtils.convertTimeSecondsToHMS(clusterMember.getUptime()));
-        memberJSON.put("loadAvg", clusterMember.getLoadAverage());
-        memberJSON.put("sockets", clusterMember.getTotalFileDescriptorOpen());
-        memberJSON.put("threads", clusterMember.getNumThreads());
-
-        // Number of member clients
-        if (PulseController.getPulseProductSupport().equalsIgnoreCase(
-            PulseConstants.PRODUCT_NAME_SQLFIRE)){
-          memberJSON.put("clients", clusterMember.getNumSqlfireClients());
-        }else{
-          memberJSON.put("clients", clusterMember.getMemberClientsHMap().size());
-        }
-        memberJSON.put("queues", clusterMember.getQueueBacklog());
-
-        memberListJson.add(memberJSON);
+    ArrayNode memberListJson = mapper.createArrayNode();
+    for (Cluster.Member clusterMember : clusterMembersList) {
+      ObjectNode memberJSON = mapper.createObjectNode();
+      // getting members detail
+      memberJSON.put("gemfireVersion", clusterMember.getGemfireVersion());
+      memberJSON.put("memberId", clusterMember.getId());
+      memberJSON.put("name", clusterMember.getName());
+      memberJSON.put("host", clusterMember.getHost());
+
+      List<String> serverGroups = clusterMember.getServerGroups();
+      if(serverGroups.size() == 0){
+        serverGroups = new ArrayList<>();
+        serverGroups.add(PulseConstants.DEFAULT_SERVER_GROUP);
+      }
+
+      memberJSON.put("serverGroups", mapper.valueToTree(serverGroups));
+
+      List<String> redundancyZones = clusterMember.getRedundancyZones();
+      if(redundancyZones.size() == 0){
+        redundancyZones = new ArrayList<String>();
+        redundancyZones.add(PulseConstants.DEFAULT_REDUNDANCY_ZONE);
       }
-      // clucter's Members
-      responseJSON.put("members", memberListJson);
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+      memberJSON.put("redundancyZones", mapper.valueToTree(redundancyZones));
+
+      DecimalFormat df2 = new DecimalFormat(
+          PulseConstants.DECIMAL_FORMAT_PATTERN);
+
+      long usedHeapSize = cluster.getUsedHeapSize();
+      long currentHeap = clusterMember.getCurrentHeapSize();
+      if (usedHeapSize > 0) {
+        float heapUsage = ((float) currentHeap / (float) usedHeapSize) * 100;
+        memberJSON
+            .put(this.HEAP_USAGE, Double.valueOf(df2.format(heapUsage)));
+      } else {
+        memberJSON.put(this.HEAP_USAGE, 0);
+      }
+      Float currentCPUUsage = clusterMember.getCpuUsage();
+
+      memberJSON.put("cpuUsage", Float.valueOf(df2.format(currentCPUUsage)));
+      memberJSON.put("currentHeapUsage", clusterMember.getCurrentHeapSize());
+      memberJSON.put("isManager", clusterMember.isManager());
+      memberJSON.put("uptime",
+          TimeUtils.convertTimeSecondsToHMS(clusterMember.getUptime()));
+      memberJSON.put("loadAvg", clusterMember.getLoadAverage());
+      memberJSON.put("sockets", clusterMember.getTotalFileDescriptorOpen());
+      memberJSON.put("threads", clusterMember.getNumThreads());
+
+      // Number of member clients
+      if (PulseController.getPulseProductSupport().equalsIgnoreCase(
+          PulseConstants.PRODUCT_NAME_SQLFIRE)){
+        memberJSON.put("clients", clusterMember.getNumSqlfireClients());
+      }else{
+        memberJSON.put("clients", clusterMember.getMemberClientsHMap().size());
+      }
+      memberJSON.put("queues", clusterMember.getQueueBacklog());
+
+      memberListJson.add(memberJSON);
     }
+    // cluster's Members
+    responseJSON.put("members", memberListJson);
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
index f9ca137..b6203e5 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
@@ -26,6 +26,9 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
@@ -33,9 +36,6 @@ import org.springframework.stereotype.Service;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 
 /**
  * Class ClusterMembersRGraphService
@@ -48,10 +48,11 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
  */
 @Component
 @Service("ClusterMembersRGraph")
-// @Service("ClusterMembers")
 @Scope("singleton")
 public class ClusterMembersRGraphService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   // String constants used for forming a json response
   private final String CLUSTER = "clustor";
   private final String MEMBER_COUNT = "memberCount";
@@ -85,7 +86,7 @@ public class ClusterMembersRGraphService implements PulseService {
   private List<String> errorAlertsList;
   private List<String> warningAlertsList;
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // Reference to repository
     Repository repository = Repository.get();
@@ -94,20 +95,15 @@ public class ClusterMembersRGraphService implements PulseService {
     Cluster cluster = repository.getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-      // clucter's Members
-      responseJSON.put(
-          this.CLUSTER,
-          getPhysicalServerJson(cluster, repository.getJmxHost(),
-              repository.getJmxPort()));
-      responseJSON.put(this.MEMBER_COUNT, cluster.getMemberCount());
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    // cluster's Members
+    responseJSON.put(this.CLUSTER,
+        getPhysicalServerJson(cluster, repository.getJmxHost(), repository.getJmxPort()));
+    responseJSON.put(this.MEMBER_COUNT, cluster.getMemberCount());
+
+    // Send json response
+    return responseJSON;
   }
 
   /**
@@ -121,24 +117,21 @@ public class ClusterMembersRGraphService implements PulseService {
    * @return Array list of JSON objects for required fields of members in
    *         cluster
    */
-  private JSONObject getPhysicalServerJson(Cluster cluster, String host,
-      String port) throws JSONException {
-    Map<String, List<Cluster.Member>> physicalToMember = cluster
-        .getPhysicalToMember();
+  private ObjectNode getPhysicalServerJson(Cluster cluster, String host, String port) {
+    Map<String, List<Cluster.Member>> physicalToMember = cluster.getPhysicalToMember();
 
-    JSONObject clusterTopologyJSON = new JSONObject();
+    ObjectNode clusterTopologyJSON = mapper.createObjectNode();
 
     clusterTopologyJSON.put(this.ID, cluster.getClusterId());
     clusterTopologyJSON.put(this.NAME, cluster.getClusterId());
-    JSONObject data1 = new JSONObject();
+    ObjectNode data1 = mapper.createObjectNode();
     clusterTopologyJSON.put(this.DATA, data1);
-    JSONArray childHostArray = new JSONArray();
+    ArrayNode childHostArray = mapper.createArrayNode();
     DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
 
     updateAlertLists(cluster);
 
-    for (Map.Entry<String, List<Cluster.Member>> physicalToMem : physicalToMember
-        .entrySet()) {
+    for (Map.Entry<String, List<Cluster.Member>> physicalToMem : physicalToMember.entrySet()) {
       String hostName = physicalToMem.getKey();
       Float hostCpuUsage = 0.0F;
       Long hostMemoryUsage = (long) 0;
@@ -149,20 +142,20 @@ public class ClusterMembersRGraphService implements PulseService {
       boolean hostError = false;
       boolean hostWarning = false;
       String hostStatus;
-      JSONObject childHostObject = new JSONObject();
+      ObjectNode childHostObject = mapper.createObjectNode();
       childHostObject.put(this.ID, hostName);
       childHostObject.put(this.NAME, hostName);
 
-      JSONArray membersArray = new JSONArray();
+      ArrayNode membersArray = mapper.createArrayNode();
 
       List<Cluster.Member> memberList = physicalToMem.getValue();
       for (Cluster.Member member : memberList) {
-        JSONObject memberJSONObj = new JSONObject();
+        ObjectNode memberJSONObj = mapper.createObjectNode();
 
         memberJSONObj.put(this.ID, member.getId());
         memberJSONObj.put(this.NAME, member.getName());
 
-        JSONObject memberData = new JSONObject();
+        ObjectNode memberData = mapper.createObjectNode();
 
         memberData.put("gemfireVersion", member.getGemfireVersion());
 
@@ -185,10 +178,11 @@ public class ClusterMembersRGraphService implements PulseService {
         memberData.put(this.REGIONS, member.getMemberRegions().size());
         memberData.put(this.HOST, member.getHost());
         if ((member.getMemberPort() == null)
-            || (member.getMemberPort().equals("")))
+            || (member.getMemberPort().equals(""))) {
           memberData.put(this.PORT, "-");
-        else
+        } else {
           memberData.put(this.PORT, member.getMemberPort());
+        }
         memberData.put(this.CLIENTS, member.getMemberClientsHMap().size());
         memberData.put(this.GC_PAUSES, member.getGarbageCollectionCount());
         memberData.put(this.NUM_THREADS, member.getNumThreads());
@@ -206,14 +200,12 @@ public class ClusterMembersRGraphService implements PulseService {
         String memberNodeType = "";
         // for severe alert
         if (severeAlertList.contains(member.getName())) {
-          memberNodeType = getMemberNodeType(member,
-              this.MEMBER_NODE_TYPE_SEVERE);
+          memberNodeType = getMemberNodeType(member, this.MEMBER_NODE_TYPE_SEVERE);
           if (!hostSevere) {
             hostSevere = true;
           }
-        }
-        // for error alerts
-        else if (errorAlertsList.contains(member.getName())) {
+        } else if (errorAlertsList.contains(member.getName())) {
+          // for error alerts
           memberNodeType = getMemberNodeType(member,
               this.MEMBER_NODE_TYPE_ERROR);
           if (!hostError) {
@@ -222,29 +214,27 @@ public class ClusterMembersRGraphService implements PulseService {
         }
         // for warning alerts
         else if (warningAlertsList.contains(member.getName())) {
-          memberNodeType = getMemberNodeType(member,
-              this.MEMBER_NODE_TYPE_WARNING);
-          if (!hostWarning)
+          memberNodeType = getMemberNodeType(member, this.MEMBER_NODE_TYPE_WARNING);
+          if (!hostWarning) {
             hostWarning = true;
+          }
         } else {
-          memberNodeType = getMemberNodeType(member,
-              this.MEMBER_NODE_TYPE_NORMAL);
+          memberNodeType = getMemberNodeType(member, this.MEMBER_NODE_TYPE_NORMAL);
         }
 
         memberData.put("nodeType", memberNodeType);
         memberData.put("$type", memberNodeType);
-        memberData.put(this.GATEWAY_SENDER, member.getGatewaySenderList()
-            .size());
+        memberData.put(this.GATEWAY_SENDER, member.getGatewaySenderList().size());
         if (member.getGatewayReceiver() != null) {
-          memberData.put(this.GATEWAY_RECEIVER, "1");
+          memberData.put(this.GATEWAY_RECEIVER, 1);
         } else {
-          memberData.put(this.GATEWAY_RECEIVER, "0");
+          memberData.put(this.GATEWAY_RECEIVER, 0);
         }
         memberJSONObj.put(this.DATA, memberData);
-        memberJSONObj.put(this.CHILDREN, new JSONArray());
-        membersArray.put(memberJSONObj);
+        memberJSONObj.put(this.CHILDREN, mapper.createArrayNode());
+        membersArray.add(memberJSONObj);
       }
-      JSONObject data = new JSONObject();
+      ObjectNode data = mapper.createObjectNode();
 
       data.put(this.LOAD_AVG, hostLoadAvg);
       data.put(this.SOCKETS, hostSockets);
@@ -273,7 +263,7 @@ public class ClusterMembersRGraphService implements PulseService {
       childHostObject.put(this.DATA, data);
 
       childHostObject.put(this.CHILDREN, membersArray);
-      childHostArray.put(childHostObject);
+      childHostArray.add(childHostObject);
     }
     clusterTopologyJSON.put(this.CHILDREN, childHostArray);
 
@@ -367,6 +357,5 @@ public class ClusterMembersRGraphService implements PulseService {
         }
       }
     }
-
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java
index 830a44b..2301095 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java
@@ -19,17 +19,15 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class ClusterMemoryUsageService
@@ -46,25 +44,23 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 @Scope("singleton")
 public class ClusterMemoryUsageService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-    // clucter's Memory Usage trend added to json response object
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    // cluster's Memory Usage trend added to json response object
+
+    responseJSON.put("currentMemoryUsage", cluster.getUsedHeapSize());
+    responseJSON.put("memoryUsageTrend",
+        mapper.valueToTree(cluster.getStatisticTrend(Cluster.CLUSTER_STAT_MEMORY_USAGE)));
 
-    try {
-      responseJSON.put("currentMemoryUsage", cluster.getUsedHeapSize());
-      responseJSON.put(
-          "memoryUsageTrend",
-          new JSONArray(cluster
-              .getStatisticTrend(Cluster.CLUSTER_STAT_MEMORY_USAGE)));
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
index bb8950b..d8bd3a9 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
@@ -19,6 +19,19 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
+import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -26,21 +39,6 @@ import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
-import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
-import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
-
 /**
  * Class ClusterRegionService
  *
@@ -55,27 +53,26 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class ClusterRegionService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   // String constants used for forming a json response
   private final String ENTRY_SIZE = "entrySize";
 
   // Comparator based upon regions entry count
-  private static Comparator<Cluster.Region> regionEntryCountComparator = new Comparator<Cluster.Region>() {
-    @Override
-    public int compare(Cluster.Region r1, Cluster.Region r2) {
-      long r1Cnt = r1.getSystemRegionEntryCount();
-      long r2Cnt = r2.getSystemRegionEntryCount();
-      if (r1Cnt < r2Cnt) {
-        return -1;
-      } else if (r1Cnt > r2Cnt) {
-        return 1;
-      } else {
-        return 0;
-      }
+  private static Comparator<Cluster.Region> regionEntryCountComparator = (r1, r2) -> {
+    long r1Cnt = r1.getSystemRegionEntryCount();
+    long r2Cnt = r2.getSystemRegionEntryCount();
+    if (r1Cnt < r2Cnt) {
+      return -1;
+    } else if (r1Cnt > r2Cnt) {
+      return 1;
+    } else {
+      return 0;
     }
   };
 
   @Override
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     String userName = request.getUserPrincipal().getName();
 
@@ -83,18 +80,14 @@ public class ClusterRegionService implements PulseService {
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-      // getting cluster's Regions
-      responseJSON.put("clusterName", cluster.getServerName());
-      responseJSON.put("userName", userName);
-      responseJSON.put("region", getRegionJson(cluster));
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    // getting cluster's Regions
+    responseJSON.put("clusterName", cluster.getServerName());
+    responseJSON.put("userName", userName);
+    responseJSON.put("region", getRegionJson(cluster));
+    // Send json response
+    return responseJSON;
   }
 
   /**
@@ -103,9 +96,9 @@ public class ClusterRegionService implements PulseService {
    * all the regions associated with given cluster
    *
    * @param cluster
-   * @return JSONObject Array List
+   * @return ArrayNode Array List
    */
-  private List<JSONObject> getRegionJson(Cluster cluster) throws JSONException {
+  private ArrayNode getRegionJson(Cluster cluster) {
 
     Long totalHeapSize = cluster.getTotalHeapSize();
     Long totalDiskUsage = cluster.getTotalBytesOnDisk();
@@ -117,10 +110,10 @@ public class ClusterRegionService implements PulseService {
 
     Collections.sort(clusterRegionsList, regionEntryCountComparator);
 
-    List<JSONObject> regionListJson = new ArrayList<JSONObject>();
+    ArrayNode regionListJson = mapper.createArrayNode();
     for (int count = 0; count < clusterRegionsList.size(); count++) {
       Cluster.Region reg = clusterRegionsList.get(count);
-      JSONObject regionJSON = new JSONObject();
+      ObjectNode regionJSON = mapper.createObjectNode();
 
       regionJSON.put("name", reg.getName());
       regionJSON.put("totalMemory", totalHeapSize);
@@ -134,7 +127,7 @@ public class ClusterRegionService implements PulseService {
 
       Cluster.Member[] clusterMembersList = cluster.getMembers();
 
-      JSONArray memberNameArray = new JSONArray();
+      ArrayNode memberNameArray = mapper.createArrayNode();
       for (String memberName : reg.getMemberName()) {
         for (Cluster.Member member : clusterMembersList) {
           String name = member.getName();
@@ -143,10 +136,10 @@ public class ClusterRegionService implements PulseService {
           id = id.replace(":", "-");
 
           if ((memberName.equals(id)) || (memberName.equals(name))) {
-            JSONObject regionMember = new JSONObject();
+            ObjectNode regionMember = mapper.createObjectNode();
             regionMember.put("id", member.getId());
             regionMember.put("name", member.getName());
-            memberNameArray.put(regionMember);
+            memberNameArray.add(regionMember);
             break;
           }
         }
@@ -196,26 +189,14 @@ public class ClusterRegionService implements PulseService {
         regionJSON.put("regionPath", reg.getFullPath());
       }
 
-      regionJSON
-          .put(
-              "memoryReadsTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_GETS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "memoryWritesTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_PUTS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "diskReadsTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_READS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "diskWritesTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_WRITES_PER_SEC_TREND)));
+      regionJSON.put("memoryReadsTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_GETS_PER_SEC_TREND)));
+      regionJSON.put("memoryWritesTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_PUTS_PER_SEC_TREND)));
+      regionJSON.put("diskReadsTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_READS_PER_SEC_TREND)));
+      regionJSON.put("diskWritesTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_WRITES_PER_SEC_TREND)));
       regionJSON.put("emptyNodes", reg.getEmptyNode());
       Long entrySize = reg.getEntrySize();
       DecimalFormat form = new DecimalFormat(


[02/10] incubator-geode git commit: GEODE-907: remove com.vmware.gemfire.tools.pulse.internal.json

Posted by je...@apache.org.
GEODE-907: remove com.vmware.gemfire.tools.pulse.internal.json


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/589ced4c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/589ced4c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/589ced4c

Branch: refs/heads/develop
Commit: 589ced4c8c427f61b5c1164c5ded217773cccb5b
Parents: 6d3f556
Author: Jens Deppe <jd...@pivotal.io>
Authored: Thu Feb 18 16:39:53 2016 -0800
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Feb 23 14:04:50 2016 -0800

----------------------------------------------------------------------
 .../internal/controllers/PulseController.java      |  2 +-
 .../tools/pulse/internal/data/DataBrowser.java     | 17 +++++++----------
 .../internal/service/ClusterDetailsService.java    |  2 +-
 .../service/ClusterDiskThroughputService.java      |  2 +-
 .../internal/service/ClusterGCPausesService.java   |  2 +-
 .../service/ClusterKeyStatisticsService.java       |  2 +-
 .../internal/service/ClusterMemberService.java     |  2 +-
 .../service/ClusterMembersRGraphService.java       |  2 +-
 .../service/ClusterMemoryUsageService.java         |  2 +-
 .../internal/service/ClusterRegionService.java     |  2 +-
 .../internal/service/ClusterRegionsService.java    |  2 +-
 .../service/ClusterSelectedRegionService.java      |  2 +-
 .../ClusterSelectedRegionsMemberService.java       |  2 +-
 .../internal/service/ClusterWANInfoService.java    |  2 +-
 .../service/MemberAsynchEventQueuesService.java    |  2 +-
 .../internal/service/MemberClientsService.java     |  2 +-
 .../internal/service/MemberDetailsService.java     |  2 +-
 .../service/MemberDiskThroughputService.java       |  2 +-
 .../internal/service/MemberGCPausesService.java    |  2 +-
 .../internal/service/MemberGatewayHubService.java  |  2 +-
 .../internal/service/MemberHeapUsageService.java   |  2 +-
 .../service/MemberKeyStatisticsService.java        |  2 +-
 .../internal/service/MemberRegionsService.java     |  2 +-
 .../pulse/internal/service/MembersListService.java |  2 +-
 .../tools/pulse/internal/service/PulseService.java |  9 +--------
 .../internal/service/PulseVersionService.java      |  2 +-
 .../internal/service/QueryStatisticsService.java   |  5 +----
 .../internal/service/SystemAlertsService.java      |  2 +-
 28 files changed, 34 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
index e70d3f1..22be468 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
@@ -105,7 +105,7 @@ public class PulseController {
         try {
           PulseService pulseService = pulseServiceFactory
               .getPulseServiceInstance(serviceName);
-          responseMap.put(serviceName, pulseService.tempExecute(request));
+          responseMap.put(serviceName, pulseService.execute(request));
         } catch (Exception serviceException) {
           LOGGER.warning("serviceException [for service "+serviceName+"] = " + serviceException.getMessage());
           responseMap.put(serviceName, EMPTY_JSON);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
index 88d5e32..cb955e4 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
@@ -19,6 +19,13 @@
 
 package com.vmware.gemfire.tools.pulse.internal.data;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
+import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -30,16 +37,6 @@ import java.util.Iterator;
 import java.util.ResourceBundle;
 import java.util.Scanner;
 
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
-import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
-import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
-
 /**
  * Class DataBrowser This class contains Data browser functionalities for
  * managing queries and histories.

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java
index 35f9a81..f150071 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDetailsService.java
@@ -48,7 +48,7 @@ public class ClusterDetailsService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     String userName = request.getUserPrincipal().getName();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
index 0a45ef6..576f0a3 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
@@ -44,7 +44,7 @@ public class ClusterDiskThroughputService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
index 606fc12..a9c9d03 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
@@ -47,7 +47,7 @@ public class ClusterGCPausesService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java
index ae9e5cf..8955791 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterKeyStatisticsService.java
@@ -46,7 +46,7 @@ public class ClusterKeyStatisticsService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
index 296a45d..882366d 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
@@ -54,7 +54,7 @@ public class ClusterMemberService implements PulseService {
 
   private final String HEAP_USAGE = "heapUsage";
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
index b6203e5..f560b91 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
@@ -86,7 +86,7 @@ public class ClusterMembersRGraphService implements PulseService {
   private List<String> errorAlertsList;
   private List<String> warningAlertsList;
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // Reference to repository
     Repository repository = Repository.get();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java
index 2301095..aeb48d6 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemoryUsageService.java
@@ -46,7 +46,7 @@ public class ClusterMemoryUsageService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
index d8bd3a9..3e54c36 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
@@ -72,7 +72,7 @@ public class ClusterRegionService implements PulseService {
   };
 
   @Override
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     String userName = request.getUserPrincipal().getName();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java
index ff94b20..cfb2714 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java
@@ -71,7 +71,7 @@ public class ClusterRegionsService implements PulseService {
     }
   };
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
index 5c4fa0c..72640d4 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
@@ -74,7 +74,7 @@ public class ClusterSelectedRegionService implements PulseService {
   };
 
   @Override
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     String userName = request.getUserPrincipal().getName();
     String pulseData = request.getParameter("pulseData");

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java
index ecdd14e..00807d9 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java
@@ -67,7 +67,7 @@ public class ClusterSelectedRegionsMemberService implements PulseService {
     };
 
   @Override
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
     PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     String userName = request.getUserPrincipal().getName();
     String pulseData = request.getParameter("pulseData");

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java
index 21d93a7..291d044 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java
@@ -47,7 +47,7 @@ public class ClusterWANInfoService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java
index 190fc6d..378fb4b 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java
@@ -48,7 +48,7 @@ public class MemberAsynchEventQueuesService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java
index a2b5819..04ee3c9 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java
@@ -52,7 +52,7 @@ public class MemberClientsService implements PulseService {
   private final String NAME = "name";
   private final String HOST = "host";
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
index 9a227a2..0f6876d 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
@@ -49,7 +49,7 @@ public class MemberDetailsService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     String userName = request.getUserPrincipal().getName();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
index f75479c..145c0b9 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
@@ -48,7 +48,7 @@ public class MemberDiskThroughputService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception, JSONException {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception, JSONException {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java
index 77792d5..0786918 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java
@@ -48,7 +48,7 @@ public class MemberGCPausesService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
index 2f7b717..9e3e8cd 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
@@ -51,7 +51,7 @@ public class MemberGatewayHubService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java
index 914b053..13f7e5f 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java
@@ -47,7 +47,7 @@ public class MemberHeapUsageService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
index 4509918..2c70d84 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
@@ -48,7 +48,7 @@ public class MemberKeyStatisticsService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception, JSONException {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception, JSONException {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java
index 05a96ec..b0d1013 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java
@@ -57,7 +57,7 @@ public class MemberRegionsService implements PulseService {
   private final String DISC_STORE_NAME = "diskStoreName";
   private final String DISC_SYNCHRONOUS = "diskSynchronous";
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java
index 9ea701a..2edce45 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java
@@ -45,7 +45,7 @@ public class MembersListService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java
index f3a6ee9..21e2d22 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java
@@ -22,7 +22,6 @@ package com.vmware.gemfire.tools.pulse.internal.service;
 import javax.servlet.http.HttpServletRequest;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 
 /**
  * Abstract class PulseService
@@ -38,11 +37,5 @@ public interface PulseService {
   String VALUE_ON = "ON";
   String VALUE_OFF = "OFF";
 
-  default JSONObject execute(HttpServletRequest httpServletRequest) throws Exception {
-    return null;
-  }
-
-  default ObjectNode tempExecute(HttpServletRequest httpServletRequest) throws Exception {
-    return null;
-  }
+  ObjectNode execute(HttpServletRequest httpServletRequest) throws Exception;
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java
index b2e15c9..cf3a849 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java
@@ -46,7 +46,7 @@ public class PulseVersionService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // json object to be sent as response
     ObjectNode responseJSON = mapper.createObjectNode();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java
index c3987b2..c3ad0f4 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java
@@ -31,9 +31,6 @@ import org.springframework.stereotype.Service;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 
 /**
  * Class QueryStatisticsService
@@ -52,7 +49,7 @@ public class QueryStatisticsService implements PulseService {
   private final ObjectMapper mapper = new ObjectMapper();
 
   @Override
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/589ced4c/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java
index 47fd20d..583ed85 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java
@@ -49,7 +49,7 @@ public class SystemAlertsService implements PulseService {
 
   private static final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();


[04/10] incubator-geode git commit: GEODE-907: Converted core functionality to use jackson

Posted by je...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java
index 5d47d3f..ff94b20 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionsService.java
@@ -19,30 +19,26 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
+import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
-import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
-import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
-
 /**
  * Class ClusterRegionsService
  * 
@@ -57,43 +53,36 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class ClusterRegionsService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   // String constants used for forming a json response
   private final String ENTRY_SIZE = "entrySize";
 
   // Comparator based upon regions entry count
-  private static Comparator<Cluster.Region> regionEntryCountComparator = new Comparator<Cluster.Region>() {
-    @Override
-    public int compare(Cluster.Region r1, Cluster.Region r2) {
-      long r1Cnt = r1.getSystemRegionEntryCount();
-      long r2Cnt = r2.getSystemRegionEntryCount();
-      if (r1Cnt < r2Cnt) {
-        return -1;
-      } else if (r1Cnt > r2Cnt) {
-        return 1;
-      } else {
-        return 0;
-      }
+  private static Comparator<Cluster.Region> regionEntryCountComparator = (r1, r2) -> {
+    long r1Cnt = r1.getSystemRegionEntryCount();
+    long r2Cnt = r2.getSystemRegionEntryCount();
+    if (r1Cnt < r2Cnt) {
+      return -1;
+    } else if (r1Cnt > r2Cnt) {
+      return 1;
+    } else {
+      return 0;
     }
   };
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
-
-    String userName = request.getUserPrincipal().getName();
-
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-      // getting cluster's Regions
-      responseJSON.put("regions", getRegionJson(cluster));
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    // getting cluster's Regions
+    responseJSON.put("regions", getRegionJson(cluster));
+
+    // Send json response
+    return responseJSON;
   }
 
   /**
@@ -104,7 +93,7 @@ public class ClusterRegionsService implements PulseService {
    * @param cluster
    * @return JSONObject Array List
    */
-  private List<JSONObject> getRegionJson(Cluster cluster) throws JSONException {
+  private ArrayNode getRegionJson(Cluster cluster) {
 
     Long totalHeapSize = cluster.getTotalHeapSize();
     Long totalDiskUsage = cluster.getTotalBytesOnDisk();
@@ -116,10 +105,10 @@ public class ClusterRegionsService implements PulseService {
 
     Collections.sort(clusterRegionsList, regionEntryCountComparator);
 
-    List<JSONObject> regionListJson = new ArrayList<JSONObject>();
+    ArrayNode regionListJson = mapper.createArrayNode();
     for (int count = 0; count < clusterRegionsList.size(); count++) {
       Cluster.Region reg = clusterRegionsList.get(count);
-      JSONObject regionJSON = new JSONObject();
+      ObjectNode regionJSON = mapper.createObjectNode();
 
       regionJSON.put("name", reg.getName());
       regionJSON.put("totalMemory", totalHeapSize);
@@ -133,7 +122,7 @@ public class ClusterRegionsService implements PulseService {
 
       Cluster.Member[] clusterMembersList = cluster.getMembers();
 
-      JSONArray memberNameArray = new JSONArray();
+      ArrayNode memberNameArray = mapper.createArrayNode();
       for (String memberName : reg.getMemberName()) {
         for (Cluster.Member member : clusterMembersList) {
           String name = member.getName();
@@ -142,10 +131,10 @@ public class ClusterRegionsService implements PulseService {
           id = id.replace(":", "-");
 
           if ((memberName.equals(id)) || (memberName.equals(name))) {
-            JSONObject regionMember = new JSONObject();
+            ObjectNode regionMember = mapper.createObjectNode();
             regionMember.put("id", member.getId());
             regionMember.put("name", member.getName());
-            memberNameArray.put(regionMember);
+            memberNameArray.add(regionMember);
             break;
           }
         }
@@ -186,8 +175,7 @@ public class ClusterRegionsService implements PulseService {
         regionJSON.put("compressionCodec", this.VALUE_NA);
       }
 
-      if (PulseConstants.PRODUCT_NAME_SQLFIRE.equalsIgnoreCase(PulseController
-          .getPulseProductSupport())) {
+      if (PulseConstants.PRODUCT_NAME_SQLFIRE.equalsIgnoreCase(PulseController.getPulseProductSupport())) {
         // Convert region path to dot separated region path
         regionJSON.put("regionPath",
             StringUtils.getTableNameFromRegionName(reg.getFullPath()));
@@ -198,30 +186,17 @@ public class ClusterRegionsService implements PulseService {
         regionJSON.put("id", reg.getFullPath());
       }
 
-      regionJSON
-          .put(
-              "memoryReadsTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_GETS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "memoryWritesTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_PUTS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "diskReadsTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_READS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "diskWritesTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_WRITES_PER_SEC_TREND)));
+      regionJSON.put("memoryReadsTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_GETS_PER_SEC_TREND)));
+      regionJSON.put("memoryWritesTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_PUTS_PER_SEC_TREND)));
+      regionJSON.put("diskReadsTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_READS_PER_SEC_TREND)));
+      regionJSON.put("diskWritesTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_WRITES_PER_SEC_TREND)));
       regionJSON.put("emptyNodes", reg.getEmptyNode());
       Long entrySize = reg.getEntrySize();
-      DecimalFormat form = new DecimalFormat(
-          PulseConstants.DECIMAL_FORMAT_PATTERN_2);
+      DecimalFormat form = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN_2);
       String entrySizeInMB = form.format(entrySize / (1024f * 1024f));
 
       if (entrySize < 0) {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
index f19e78b..5c4fa0c 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
@@ -19,28 +19,27 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import com.vmware.gemfire.tools.pulse.internal.util.TimeUtils;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
 
 /**
  * Class ClusterSelectedRegionService
@@ -56,65 +55,61 @@ import com.vmware.gemfire.tools.pulse.internal.util.TimeUtils;
 @Scope("singleton")
 public class ClusterSelectedRegionService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   // String constants used for forming a json response
   private final String ENTRY_SIZE = "entrySize";
 
   // Comparator based upon regions entry count
-  private static Comparator<Cluster.Member> memberCurrentHeapUsageComparator = new Comparator<Cluster.Member>() {
-    @Override
-    public int compare(Cluster.Member m1, Cluster.Member m2) {
-      long m1HeapUsage = m1.getCurrentHeapSize();
-      long m2HeapUsage = m2.getCurrentHeapSize();
-      if (m1HeapUsage < m2HeapUsage) {
-        return -1;
-      } else if (m1HeapUsage > m2HeapUsage) {
-        return 1;
-      } else {
-        return 0;
-      }
+  private static Comparator<Cluster.Member> memberCurrentHeapUsageComparator = (m1, m2) -> {
+    long m1HeapUsage = m1.getCurrentHeapSize();
+    long m2HeapUsage = m2.getCurrentHeapSize();
+    if (m1HeapUsage < m2HeapUsage) {
+      return -1;
+    } else if (m1HeapUsage > m2HeapUsage) {
+      return 1;
+    } else {
+      return 0;
     }
   };
 
   @Override
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     String userName = request.getUserPrincipal().getName();
     String pulseData = request.getParameter("pulseData");
-    JSONObject parameterMap = new JSONObject(pulseData);
-    String selectedRegionFullPath = parameterMap.getJSONObject("ClusterSelectedRegion").getString("regionFullPath");
+    JsonNode parameterMap = mapper.readTree(pulseData);
+    String selectedRegionFullPath = parameterMap.get("ClusterSelectedRegion").get("regionFullPath").textValue();
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-      // getting cluster's Regions
-      responseJSON.put("clusterName", cluster.getServerName());
-      responseJSON.put("userName", userName);
-      responseJSON.put("selectedRegion", getSelectedRegionJson(cluster, selectedRegionFullPath));
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    // getting cluster's Regions
+    responseJSON.put("clusterName", cluster.getServerName());
+    responseJSON.put("userName", userName);
+    responseJSON.put("selectedRegion", getSelectedRegionJson(cluster, selectedRegionFullPath));
+
+    // Send json response
+    return responseJSON;
   }
 
   /**
    * Create JSON for selected cluster region
    *
    * @param cluster
-   * @return JSONObject Array List
+   * @return ObjectNode Array List
    */
-  private JSONObject getSelectedRegionJson(Cluster cluster, String selectedRegionFullPath) throws JSONException {
+  private ObjectNode getSelectedRegionJson(Cluster cluster, String selectedRegionFullPath) {
     PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     Long totalHeapSize = cluster.getTotalHeapSize();
     Long totalDiskUsage = cluster.getTotalBytesOnDisk();
 
     Cluster.Region reg = cluster.getClusterRegion(selectedRegionFullPath);
-    if(reg != null){
-      JSONObject regionJSON = new JSONObject();
+    if (reg != null){
+      ObjectNode regionJSON = mapper.createObjectNode();
 
       regionJSON.put("name", reg.getName());
       regionJSON.put("path", reg.getFullPath());
@@ -128,8 +123,7 @@ public class ClusterSelectedRegionService implements PulseService {
       regionJSON.put("putsRate", reg.getPutsRate());
       regionJSON.put("lruEvictionRate", reg.getLruEvictionRate());
 
-      DecimalFormat df2 = new DecimalFormat(
-          PulseConstants.DECIMAL_FORMAT_PATTERN);
+      DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
       Cluster.Member[] clusterMembersList = cluster.getMembers();
 
       // collect members of this region
@@ -149,11 +143,11 @@ public class ClusterSelectedRegionService implements PulseService {
 
       // sort members of this region
       Collections.sort(clusterMembersL, memberCurrentHeapUsageComparator);
+
       // return sorted member list by heap usage
-      JSONArray memberArray = new JSONArray();
+      ArrayNode memberArray = mapper.createArrayNode();
       for (Cluster.Member member : clusterMembersL) {
-
-          JSONObject regionMember = new JSONObject();
+          ObjectNode regionMember = mapper.createObjectNode();
           regionMember.put("memberId", member.getId());
           regionMember.put("name", member.getName());
           regionMember.put("host", member.getHost());
@@ -184,33 +178,18 @@ public class ClusterSelectedRegionService implements PulseService {
             regionMember.put("clients", member.getMemberClientsHMap().size());
           }
           regionMember.put("queues", member.getQueueBacklog());
-          memberArray.put(regionMember);
+          memberArray.add(regionMember);
       }
 
       regionJSON.put("members", memberArray);
       regionJSON.put("entryCount", reg.getSystemRegionEntryCount());
 
-      Boolean persistent = reg.getPersistentEnabled();
-      if (persistent) {
-        regionJSON.put("persistence", PulseService.VALUE_ON);
-      } else {
-        regionJSON.put("persistence", PulseService.VALUE_OFF);
-      }
+      regionJSON.put("persistence", reg.getPersistentEnabled() ? PulseService.VALUE_ON : PulseService.VALUE_OFF);
 
-      Boolean isEnableOffHeapMemory = reg.isEnableOffHeapMemory();
-      if (isEnableOffHeapMemory) {
-        regionJSON.put("isEnableOffHeapMemory", PulseService.VALUE_ON);
-      } else {
-        regionJSON.put("isEnableOffHeapMemory", PulseService.VALUE_OFF);
-      }
+      regionJSON.put("isEnableOffHeapMemory", reg.isEnableOffHeapMemory() ? PulseService.VALUE_ON : PulseService.VALUE_OFF);
 
-      Boolean isHDFSWriteOnly = reg.isHdfsWriteOnly();
       if (regionType.startsWith("HDFS")) {
-        if (isHDFSWriteOnly) {
-          regionJSON.put("isHDFSWriteOnly", PulseService.VALUE_ON);
-        } else {
-          regionJSON.put("isHDFSWriteOnly", PulseService.VALUE_OFF);
-        }
+        regionJSON.put("isHDFSWriteOnly", reg.isHdfsWriteOnly() ? PulseService.VALUE_ON : PulseService.VALUE_OFF);
       } else {
         regionJSON.put("isHDFSWriteOnly", PulseService.VALUE_NA);
       }
@@ -222,35 +201,22 @@ public class ClusterSelectedRegionService implements PulseService {
         regionJSON.put("compressionCodec", PulseService.VALUE_NA);
       }
 
-      if (PulseConstants.PRODUCT_NAME_SQLFIRE.equalsIgnoreCase(PulseController
-          .getPulseProductSupport())) {
+      if (PulseConstants.PRODUCT_NAME_SQLFIRE.equalsIgnoreCase(PulseController.getPulseProductSupport())) {
         // Convert region path to dot separated region path
-        regionJSON.put("regionPath",
-            StringUtils.getTableNameFromRegionName(reg.getFullPath()));
+        regionJSON.put("regionPath", StringUtils.getTableNameFromRegionName(reg.getFullPath()));
       } else {
         regionJSON.put("regionPath", reg.getFullPath());
       }
 
-      regionJSON
-          .put(
-              "memoryReadsTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_GETS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "memoryWritesTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_PUTS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "diskReadsTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_READS_PER_SEC_TREND)));
-      regionJSON
-          .put(
-              "diskWritesTrend",
-              new JSONArray(
-                  reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_WRITES_PER_SEC_TREND)));
+      regionJSON.put("memoryReadsTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_GETS_PER_SEC_TREND)));
+      regionJSON.put("memoryWritesTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_PUTS_PER_SEC_TREND)));
+      regionJSON.put("diskReadsTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_READS_PER_SEC_TREND)));
+      regionJSON.put("diskWritesTrend",
+          mapper.valueToTree(reg.getRegionStatisticTrend(Cluster.Region.REGION_STAT_DISK_WRITES_PER_SEC_TREND)));
+
       regionJSON.put("emptyNodes", reg.getEmptyNode());
       Long entrySize = reg.getEntrySize();
       DecimalFormat form = new DecimalFormat(
@@ -269,9 +235,8 @@ public class ClusterSelectedRegionService implements PulseService {
       LOGGER.fine("calling getSelectedRegionJson :: regionJSON = " + regionJSON);
       return regionJSON;
     } else {
-      JSONObject responseJSON = new JSONObject();
-      responseJSON.put("errorOnRegion", "Region [" + selectedRegionFullPath
-          + "] is not available");
+      ObjectNode responseJSON = mapper.createObjectNode();
+      responseJSON.put("errorOnRegion", "Region [" + selectedRegionFullPath + "] is not available");
       return responseJSON;
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java
index f4430d5..ecdd14e 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionsMemberService.java
@@ -19,24 +19,22 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster.RegionOnMember;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
 
 /**
  * Class ClusterSelectedRegionsMemberService
@@ -53,57 +51,53 @@ import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
 @Scope("singleton")
 public class ClusterSelectedRegionsMemberService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   //Comparator based upon regions entry count
-  private static Comparator<Cluster.RegionOnMember> romEntryCountComparator = new Comparator<Cluster.RegionOnMember>() {
-   @Override
-     public int compare(Cluster.RegionOnMember m1, Cluster.RegionOnMember m2) {
-       long m1EntryCount = m1.getEntryCount();
-       long m2EntryCount = m2.getEntryCount();
-       if (m1EntryCount < m2EntryCount) {
-         return -1;
-       } else if (m1EntryCount > m2EntryCount) {
-         return 1;
-       } else {
-         return 0;
-       }
-     }
-  };
+  private static Comparator<Cluster.RegionOnMember> romEntryCountComparator = (m1, m2) -> {
+      long m1EntryCount = m1.getEntryCount();
+      long m2EntryCount = m2.getEntryCount();
+      if (m1EntryCount < m2EntryCount) {
+        return -1;
+      } else if (m1EntryCount > m2EntryCount) {
+        return 1;
+      } else {
+        return 0;
+      }
+    };
 
   @Override
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
     PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     String userName = request.getUserPrincipal().getName();
     String pulseData = request.getParameter("pulseData");
-    JSONObject parameterMap = new JSONObject(pulseData);
-    String selectedRegionFullPath = parameterMap.getJSONObject("ClusterSelectedRegionsMember").getString("regionFullPath");
+    JsonNode parameterMap = mapper.readTree(pulseData);
+    String selectedRegionFullPath = parameterMap.get("ClusterSelectedRegionsMember").get("regionFullPath").textValue();
     LOGGER.finest("ClusterSelectedRegionsMemberService selectedRegionFullPath = " + selectedRegionFullPath);
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-      // getting cluster's Regions
-      responseJSON.put("clusterName", cluster.getServerName());
-      responseJSON.put("userName", userName);
-      responseJSON.put("selectedRegionsMembers", getSelectedRegionsMembersJson(cluster, selectedRegionFullPath));
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    // getting cluster's Regions
+    responseJSON.put("clusterName", cluster.getServerName());
+    responseJSON.put("userName", userName);
+    responseJSON.put("selectedRegionsMembers", getSelectedRegionsMembersJson(cluster, selectedRegionFullPath));
+    // Send json response
+    return responseJSON;
   }
 
   /**
    * Create JSON for selected cluster region's all members
    */
-  private JSONObject getSelectedRegionsMembersJson(Cluster cluster, String selectedRegionFullPath) throws JSONException {
+  private ObjectNode getSelectedRegionsMembersJson(Cluster cluster, String selectedRegionFullPath) {
     PulseLogWriter LOGGER = PulseLogWriter.getLogger();
     Cluster.Region reg = cluster.getClusterRegion(selectedRegionFullPath);
-    if(reg != null){
-      JSONObject regionMemberJSON = new JSONObject();
+
+    if (reg != null){
+      ObjectNode regionMemberJSON = mapper.createObjectNode();
       RegionOnMember[] regionOnMembers = reg.getRegionOnMembers();
 
       //sort on entry count
@@ -111,35 +105,39 @@ public class ClusterSelectedRegionsMemberService implements PulseService {
       Collections.sort(romList, romEntryCountComparator);
 
       for(RegionOnMember rom : romList) {
-
-        JSONObject memberJSON = new JSONObject();
+        ObjectNode memberJSON = mapper.createObjectNode();
         memberJSON.put("memberName", rom.getMemberName());
         memberJSON.put("regionFullPath", rom.getRegionFullPath());
         memberJSON.put("entryCount", rom.getEntryCount());
         memberJSON.put("entrySize", rom.getEntrySize());
+
         memberJSON.put("accessor", ((rom.getLocalMaxMemory() == 0) ? "True" : "False"));
         LOGGER.finest("calling getSelectedRegionsMembersJson :: rom.getLocalMaxMemory() = " + rom.getLocalMaxMemory());
-        memberJSON.put(
-            "memoryReadsTrend", new JSONArray(rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_GETS_PER_SEC_TREND)));
+
+        memberJSON.put("memoryReadsTrend",
+            mapper.valueToTree(rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_GETS_PER_SEC_TREND)));
         LOGGER.finest("memoryReadsTrend = " + rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_GETS_PER_SEC_TREND).length);
-        memberJSON.put(
-            "memoryWritesTrend", new JSONArray(rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_PUTS_PER_SEC_TREND)));
+
+        memberJSON.put("memoryWritesTrend",
+            mapper.valueToTree(rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_PUTS_PER_SEC_TREND)));
         LOGGER.finest("memoryWritesTrend = " + rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_PUTS_PER_SEC_TREND).length);
-        memberJSON.put(
-            "diskReadsTrend", new JSONArray(rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_DISK_READS_PER_SEC_TREND)));
+
+        memberJSON.put("diskReadsTrend",
+            mapper.valueToTree(rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_DISK_READS_PER_SEC_TREND)));
         LOGGER.finest("diskReadsTrend = " + rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_DISK_READS_PER_SEC_TREND).length);
-        memberJSON.put(
-            "diskWritesTrend", new JSONArray(rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_DISK_WRITES_PER_SEC_TREND)));
+
+        memberJSON.put("diskWritesTrend",
+            mapper.valueToTree(rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_DISK_WRITES_PER_SEC_TREND)));
         LOGGER.finest("diskWritesTrend = " + rom.getRegionOnMemberStatisticTrend(RegionOnMember.REGION_ON_MEMBER_STAT_DISK_WRITES_PER_SEC_TREND).length);
+
         regionMemberJSON.put(rom.getMemberName(), memberJSON);
       }
 
       LOGGER.fine("calling getSelectedRegionsMembersJson :: regionJSON = " + regionMemberJSON);
       return regionMemberJSON;
     } else {
-      JSONObject responseJSON = new JSONObject();
-      responseJSON.put("errorOnRegion", "Region [" + selectedRegionFullPath
-          + "] is not available");
+      ObjectNode responseJSON = mapper.createObjectNode();
+      responseJSON.put("errorOnRegion", "Region [" + selectedRegionFullPath + "] is not available");
       return responseJSON;
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java
index 57172bd..21d93a7 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterWANInfoService.java
@@ -19,19 +19,17 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
 
 /**
  * Class ClusterWANInfoService
@@ -47,36 +45,32 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 @Scope("singleton")
 public class ClusterWANInfoService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     // members list
-    // ArrayList<Cluster> connectedClusters = cluster.getConnectedClusterList();
-    JSONArray connectedClusterListJson = new JSONArray();
-
-    try {
+    ArrayNode connectedClusterListJson = mapper.createArrayNode();
 
-      for (Map.Entry<String, Boolean> entry : cluster.getWanInformation()
-          .entrySet()) {
-        JSONObject clusterJSON = new JSONObject();
-        clusterJSON.put("clusterId", entry.getKey());
-        clusterJSON.put("name", entry.getKey());
-        clusterJSON.put("status", entry.getValue());
+    for (Map.Entry<String, Boolean> entry : cluster.getWanInformation()
+        .entrySet()) {
+      ObjectNode clusterJSON = mapper.createObjectNode();
+      clusterJSON.put("clusterId", entry.getKey());
+      clusterJSON.put("name", entry.getKey());
+      clusterJSON.put("status", entry.getValue());
 
-        connectedClusterListJson.put(clusterJSON);
-      }
-      // Response JSON
-      responseJSON.put("connectedClusters", connectedClusterListJson);
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+      connectedClusterListJson.add(clusterJSON);
     }
+    // Response JSON
+    responseJSON.put("connectedClusters", connectedClusterListJson);
+    // Send json response
+    return responseJSON;
   }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java
index 70be387..190fc6d 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberAsynchEventQueuesService.java
@@ -19,18 +19,18 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
+import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
-import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class MemberAsynchEventQueuesService
@@ -46,62 +46,55 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class MemberAsynchEventQueuesService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject(
-          "MemberAsynchEventQueues").getString("memberName");
-
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
-
-      if (clusterMember != null) {
-        // response
-        Cluster.AsyncEventQueue[] asyncEventQueues = clusterMember
-            .getMemberAsyncEventQueueList();
-        JSONArray asyncEventQueueJsonList = new JSONArray();
-
-        if (asyncEventQueues != null && asyncEventQueues.length > 0) {
-
-          responseJSON.put("isAsyncEventQueuesPresent", true);
-
-          for (Cluster.AsyncEventQueue asyncEventQueue : asyncEventQueues) {
-            JSONObject asyncEventQueueJSON = new JSONObject();
-            asyncEventQueueJSON.put("id", asyncEventQueue.getId());
-            asyncEventQueueJSON.put("primary", asyncEventQueue.getPrimary());
-            asyncEventQueueJSON.put("senderType", asyncEventQueue.isParallel());
-            asyncEventQueueJSON
-                .put("batchSize", asyncEventQueue.getBatchSize());
-            asyncEventQueueJSON.put("batchTimeInterval",
-                asyncEventQueue.getBatchTimeInterval());
-            asyncEventQueueJSON.put("batchConflationEnabled",
-                asyncEventQueue.isBatchConflationEnabled());
-            asyncEventQueueJSON.put("asyncEventListener",
-                asyncEventQueue.getAsyncEventListener());
-            asyncEventQueueJSON.put("queueSize",
-                asyncEventQueue.getEventQueueSize());
-
-            asyncEventQueueJsonList.put(asyncEventQueueJSON);
-          }
-          responseJSON.put("asyncEventQueues", asyncEventQueueJsonList);
-        } else {
-          responseJSON.put("isAsyncEventQueuesPresent", false);
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberAsynchEventQueues").get("memberName").textValue();
+
+    Cluster.Member clusterMember = cluster.getMember(StringUtils.makeCompliantName(memberName));
+
+    if (clusterMember != null) {
+      // response
+      Cluster.AsyncEventQueue[] asyncEventQueues = clusterMember
+          .getMemberAsyncEventQueueList();
+      ArrayNode asyncEventQueueJsonList = mapper.createArrayNode();
+
+      if (asyncEventQueues != null && asyncEventQueues.length > 0) {
+        responseJSON.put("isAsyncEventQueuesPresent", true);
+
+        for (Cluster.AsyncEventQueue asyncEventQueue : asyncEventQueues) {
+          ObjectNode asyncEventQueueJSON = mapper.createObjectNode();
+          asyncEventQueueJSON.put("id", asyncEventQueue.getId());
+          asyncEventQueueJSON.put("primary", asyncEventQueue.getPrimary());
+          asyncEventQueueJSON.put("senderType", asyncEventQueue.isParallel());
+          asyncEventQueueJSON
+              .put("batchSize", asyncEventQueue.getBatchSize());
+          asyncEventQueueJSON.put("batchTimeInterval",
+              asyncEventQueue.getBatchTimeInterval());
+          asyncEventQueueJSON.put("batchConflationEnabled",
+              asyncEventQueue.isBatchConflationEnabled());
+          asyncEventQueueJSON.put("asyncEventListener",
+              asyncEventQueue.getAsyncEventListener());
+          asyncEventQueueJSON.put("queueSize",
+              asyncEventQueue.getEventQueueSize());
+
+          asyncEventQueueJsonList.add(asyncEventQueueJSON);
         }
-
+        responseJSON.put("asyncEventQueues", asyncEventQueueJsonList);
+      } else {
+        responseJSON.put("isAsyncEventQueuesPresent", false);
       }
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+
     }
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java
index cb4a9e0..a2b5819 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberClientsService.java
@@ -19,21 +19,19 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import java.util.Formatter;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import com.vmware.gemfire.tools.pulse.internal.util.TimeUtils;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class MemberClientsService
@@ -48,76 +46,57 @@ import com.vmware.gemfire.tools.pulse.internal.util.TimeUtils;
 @Scope("singleton")
 public class MemberClientsService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   // String constants used for forming a json response
   private final String NAME = "name";
   private final String HOST = "host";
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject("MemberClients")
-          .getString("memberName");
-
-      JSONArray clientListJson = new JSONArray();
-
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
-      if (clusterMember != null) {
-        responseJSON.put("memberId", clusterMember.getId());
-        responseJSON.put(this.NAME, clusterMember.getName());
-        responseJSON.put(this.HOST, clusterMember.getHost());
-
-        // member's clients
-
-        Cluster.Client[] memberClients = clusterMember.getMemberClients();
-        for (Cluster.Client memberClient : memberClients) {
-          JSONObject regionJSON = new JSONObject();
-          regionJSON.put("clientId", memberClient.getId());
-          regionJSON.put(this.NAME, memberClient.getName());
-          regionJSON.put(this.HOST, memberClient.getHost());
-          regionJSON.put("queueSize", memberClient.getQueueSize());
-          regionJSON.put("clientCQCount", memberClient.getClientCQCount()); 
-          if(memberClient.isConnected()){
-            regionJSON.put("isConnected", "Yes");
-          }else{
-            regionJSON.put("isConnected", "No");
-          }
-          
-          if(memberClient.isSubscriptionEnabled()){ 
-            regionJSON.put("isSubscriptionEnabled", "Yes"); 
-          }else{ 
-            regionJSON.put("isSubscriptionEnabled", "No"); 
-          } 
-
-          regionJSON.put("uptime",
-              TimeUtils.convertTimeSecondsToHMS(memberClient.getUptime()));
-          Formatter fmt = new Formatter();
-          regionJSON.put("cpuUsage",
-              fmt.format("%.4f", memberClient.getCpuUsage()).toString());
-          // regionJSON.put("cpuUsage", memberClient.getCpuUsage());
-          regionJSON.put("threads", memberClient.getThreads());
-          regionJSON.put("gets", memberClient.getGets());
-          regionJSON.put("puts", memberClient.getPuts());
-
-          clientListJson.put(regionJSON);
-          fmt.close();
-
-        }
-        responseJSON.put("memberClients", clientListJson);
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberClients").get("memberName").textValue();
+
+    ArrayNode clientListJson = mapper.createArrayNode();
+
+    Cluster.Member clusterMember = cluster.getMember(StringUtils.makeCompliantName(memberName));
+    if (clusterMember != null) {
+      responseJSON.put("memberId", clusterMember.getId());
+      responseJSON.put(this.NAME, clusterMember.getName());
+      responseJSON.put(this.HOST, clusterMember.getHost());
+
+      // member's clients
+
+      Cluster.Client[] memberClients = clusterMember.getMemberClients();
+      for (Cluster.Client memberClient : memberClients) {
+        ObjectNode regionJSON = mapper.createObjectNode();
+        regionJSON.put("clientId", memberClient.getId());
+        regionJSON.put(this.NAME, memberClient.getName());
+        regionJSON.put(this.HOST, memberClient.getHost());
+        regionJSON.put("queueSize", memberClient.getQueueSize());
+        regionJSON.put("clientCQCount", memberClient.getClientCQCount());
+        regionJSON.put("isConnected", memberClient.isConnected() ? "Yes" : "No");
+        regionJSON.put("isSubscriptionEnabled", memberClient.isSubscriptionEnabled() ? "Yes" : "No");
+        regionJSON.put("uptime", TimeUtils.convertTimeSecondsToHMS(memberClient.getUptime()));
+
+        regionJSON.put("cpuUsage", String.format("%.4f", memberClient.getCpuUsage()).toString());
+        // regionJSON.put("cpuUsage", memberClient.getCpuUsage());
+        regionJSON.put("threads", memberClient.getThreads());
+        regionJSON.put("gets", memberClient.getGets());
+        regionJSON.put("puts", memberClient.getPuts());
+
+        clientListJson.add(regionJSON);
       }
-      // Send json response
-      return responseJSON;
-
-    } catch (JSONException e) {
-      throw new Exception(e);
+      responseJSON.put("memberClients", clientListJson);
     }
+    // Send json response
+    return responseJSON;
+
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
index 7e55712..9a227a2 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
@@ -19,12 +19,13 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
@@ -46,7 +47,9 @@ import java.text.DecimalFormat;
 @Scope("singleton")
 public class MemberDetailsService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     String userName = request.getUserPrincipal().getName();
 
@@ -54,75 +57,66 @@ public class MemberDetailsService implements PulseService {
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-    try {
-
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject("MemberDetails")
-          .getString("memberName");
-
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
-      if (clusterMember != null) {
-        responseJSON.put("memberId", clusterMember.getId());
-        responseJSON.put("name", clusterMember.getName());
-        responseJSON.put("host", clusterMember.getHost());
-        responseJSON.put("hostnameForClients", clusterMember.getHostnameForClients());
-        responseJSON.put("clusterId", cluster.getId());
-        responseJSON.put("clusterName", cluster.getServerName());
-        responseJSON.put("userName", userName);
-        responseJSON.put("loadAverage", clusterMember.getLoadAverage());
-        responseJSON.put("sockets", clusterMember.getTotalFileDescriptorOpen());
-        responseJSON.put("threads", clusterMember.getNumThreads());
-        responseJSON.put("offHeapFreeSize", clusterMember.getOffHeapFreeSize());
-        responseJSON.put("offHeapUsedSize", clusterMember.getOffHeapUsedSize());
-        responseJSON.put("regionsCount", clusterMember.getMemberRegionsList().length);
-
-        // Number of member clients
-        if (PulseController.getPulseProductSupport().equalsIgnoreCase(
-            PulseConstants.PRODUCT_NAME_SQLFIRE)){
-          responseJSON.put("numClients", clusterMember.getNumSqlfireClients());
-        }else{
-          responseJSON.put("numClients", clusterMember.getMemberClientsHMap().size());
-        }
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberDetails").get("memberName").textValue();
+
+    Cluster.Member clusterMember = cluster.getMember(StringUtils
+        .makeCompliantName(memberName));
+    if (clusterMember != null) {
+      responseJSON.put("memberId", clusterMember.getId());
+      responseJSON.put("name", clusterMember.getName());
+      responseJSON.put("host", clusterMember.getHost());
+      responseJSON.put("clusterId", cluster.getId());
+      responseJSON.put("clusterName", cluster.getServerName());
+      responseJSON.put("userName", userName);
+      responseJSON.put("loadAverage", clusterMember.getLoadAverage());
+      responseJSON.put("sockets", clusterMember.getTotalFileDescriptorOpen());
+      responseJSON.put("threads", clusterMember.getNumThreads());
+      responseJSON.put("offHeapFreeSize", clusterMember.getOffHeapFreeSize());
+      responseJSON.put("offHeapUsedSize", clusterMember.getOffHeapUsedSize());
+      responseJSON.put("regionsCount", clusterMember.getMemberRegionsList().length);
+
+      // Number of member clients
+      if (PulseController.getPulseProductSupport().equalsIgnoreCase(
+          PulseConstants.PRODUCT_NAME_SQLFIRE)){
+        responseJSON.put("numClients", clusterMember.getNumSqlfireClients());
+      } else {
+        responseJSON.put("numClients", clusterMember.getMemberClientsHMap().size());
+      }
 
-        DecimalFormat df2 = new DecimalFormat(
-            PulseConstants.DECIMAL_FORMAT_PATTERN);
-        Long diskUsageVal = clusterMember.getTotalDiskUsage();
-        Double diskUsage = diskUsageVal.doubleValue() / 1024;
+      DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
+      Long diskUsageVal = clusterMember.getTotalDiskUsage();
+      Double diskUsage = diskUsageVal.doubleValue() / 1024;
 
-        responseJSON.put("diskStorageUsed",
-            Double.valueOf(df2.format(diskUsage)));
+      responseJSON.put("diskStorageUsed", Double.valueOf(df2.format(diskUsage)));
 
-        Cluster.Alert[] alertsList = cluster.getAlertsList();
+      Cluster.Alert[] alertsList = cluster.getAlertsList();
 
-        String status = "Normal";
+      String status = "Normal";
 
-        for (Cluster.Alert alert : alertsList) {
-          if (clusterMember.getName().equals(alert.getMemberName())) {
-            if (alert.getSeverity() == Cluster.Alert.SEVERE) {
-              status = "Severe";
-              break;
-            } else if (alert.getSeverity() == Cluster.Alert.ERROR) {
-              status = "Error";
-            } else if (alert.getSeverity() == Cluster.Alert.WARNING) {
-              status = "Warning";
-            }
+      for (Cluster.Alert alert : alertsList) {
+        if (clusterMember.getName().equals(alert.getMemberName())) {
+          if (alert.getSeverity() == Cluster.Alert.SEVERE) {
+            status = "Severe";
+            break;
+          } else if (alert.getSeverity() == Cluster.Alert.ERROR) {
+            status = "Error";
+          } else if (alert.getSeverity() == Cluster.Alert.WARNING) {
+            status = "Warning";
           }
         }
-
-        responseJSON.put("status", status);
-
-      } else {
-        responseJSON.put("errorOnMember", "Member [" + memberName
-            + "] is not available");
       }
 
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+      responseJSON.put("status", status);
+
+    } else {
+      responseJSON.put("errorOnMember", "Member [" + memberName
+          + "] is not available");
     }
+
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
index ce9fb59..f75479c 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
@@ -19,18 +19,18 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
 import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class MemberDiskThroughputService
@@ -46,48 +46,33 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class MemberDiskThroughputService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception, JSONException {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     // members list
-    try {
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject("MemberDiskThroughput")
-          .getString("memberName");
-
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberDiskThroughput").get("memberName").textValue();
 
-      if (clusterMember != null) {
-        // response
-        responseJSON.put("throughputWrites",
-            clusterMember.getThroughputWrites());
-        responseJSON
-            .put(
-                "throughputWritesTrend",
-                new JSONArray(
-                    clusterMember
-                        .getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_THROUGHPUT_WRITES)));
-        responseJSON
-            .put("throughputReads", clusterMember.getThroughputWrites());
-        responseJSON
-            .put(
-                "throughputReadsTrend",
-                new JSONArray(
-                    clusterMember
-                        .getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_THROUGHPUT_READS)));
-      }
+    Cluster.Member clusterMember = cluster.getMember(StringUtils.makeCompliantName(memberName));
 
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+    if (clusterMember != null) {
+      // response
+      responseJSON.put("throughputWrites", clusterMember.getThroughputWrites());
+      responseJSON.put("throughputWritesTrend",
+          mapper.valueToTree(clusterMember.getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_THROUGHPUT_WRITES)));
+      responseJSON.put("throughputReads", clusterMember.getThroughputWrites());
+      responseJSON.put("throughputReadsTrend",
+          mapper.valueToTree(clusterMember.getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_THROUGHPUT_READS)));
     }
+
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java
index adc01e1..77792d5 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGCPausesService.java
@@ -19,18 +19,17 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
+import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
-import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class MemberGCPausesService
@@ -47,39 +46,29 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class MemberGCPausesService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     // members list
-    try {
-
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject("MemberGCPauses")
-          .getString("memberName");
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
-      if (clusterMember != null) {
-        // response
-        responseJSON
-            .put(
-                "gcPausesTrend",
-                new JSONArray(
-                    clusterMember
-                        .getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_GARBAGE_COLLECTION)));
-        responseJSON.put("gcPausesCount",
-            clusterMember.getGarbageCollectionCount());
-      }
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberGCPauses").get("memberName").textValue();
+    Cluster.Member clusterMember = cluster.getMember(StringUtils.makeCompliantName(memberName));
 
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+    if (clusterMember != null) {
+      // response
+      responseJSON.put("gcPausesTrend",
+          mapper.valueToTree(clusterMember.getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_GARBAGE_COLLECTION)));
+      responseJSON.put("gcPausesCount", clusterMember.getGarbageCollectionCount());
     }
+
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
index f1efd55..2f7b717 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
@@ -19,22 +19,21 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
+import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
-import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Class MemberGatewayHubService
@@ -50,114 +49,102 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class MemberGatewayHubService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject("MemberGatewayHub")
-          .getString("memberName");
-
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
-
-      if (clusterMember != null) {
-        // response
-        // get gateway receiver
-        Cluster.GatewayReceiver gatewayReceiver = clusterMember
-            .getGatewayReceiver();
-
-        Boolean isGateway = false;
-
-        if (gatewayReceiver != null) {
-          responseJSON.put("isGatewayReceiver", true);
-          responseJSON.put("listeningPort", gatewayReceiver.getListeningPort());
-          responseJSON
-              .put("linkTroughput", gatewayReceiver.getLinkThroughput());
-          responseJSON.put("avgBatchLatency",
-              gatewayReceiver.getAvgBatchProcessingTime());
-        } else {
-          responseJSON.put("isGatewayReceiver", false);
-        }
+    ObjectNode responseJSON = mapper.createObjectNode();
 
-        // get gateway senders
-        Cluster.GatewaySender[] gatewaySenders = clusterMember
-            .getMemberGatewaySenders();
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberGatewayHub").get("memberName").textValue();
 
-        if (gatewaySenders.length > 0) {
-          isGateway = true;
-        }
-        responseJSON.put("isGatewaySender", isGateway);
-        // Senders
-        JSONArray gatewaySendersJsonList = new JSONArray();
-
-        for (Cluster.GatewaySender gatewaySender : gatewaySenders) {
-          JSONObject gatewaySenderJSON = new JSONObject();
-          gatewaySenderJSON.put("id", gatewaySender.getId());
-          gatewaySenderJSON.put("queueSize", gatewaySender.getQueueSize());
-          gatewaySenderJSON.put("status", gatewaySender.getStatus());
-          gatewaySenderJSON.put("primary", gatewaySender.getPrimary());
-          gatewaySenderJSON.put("senderType", gatewaySender.getSenderType());
-          gatewaySenderJSON.put("batchSize", gatewaySender.getBatchSize());
-          gatewaySenderJSON.put("PersistenceEnabled",
-              gatewaySender.getPersistenceEnabled());
-          gatewaySenderJSON.put("remoteDSId",
-              gatewaySender.getRemoteDSId());
-          gatewaySenderJSON.put("eventsExceedingAlertThreshold",
-              gatewaySender.getEventsExceedingAlertThreshold());
-
-          gatewaySendersJsonList.put(gatewaySenderJSON);
-        }
-        // senders response
-        responseJSON.put("gatewaySenders", gatewaySendersJsonList);
-
-        // async event queues
-        Cluster.AsyncEventQueue[] asyncEventQueues = clusterMember.getMemberAsyncEventQueueList();
-        JSONArray asyncEventQueueJsonList = new JSONArray();
-
-        for (Cluster.AsyncEventQueue asyncEventQueue : asyncEventQueues) {
-          JSONObject asyncEventQueueJSON = new JSONObject();
-          asyncEventQueueJSON.put("id", asyncEventQueue.getId());
-          asyncEventQueueJSON.put("primary", asyncEventQueue.getPrimary());
-          asyncEventQueueJSON.put("senderType", asyncEventQueue.isParallel());
-          asyncEventQueueJSON.put("batchSize", asyncEventQueue.getBatchSize());
-          asyncEventQueueJSON.put("batchTimeInterval", asyncEventQueue.getBatchTimeInterval());
-          asyncEventQueueJSON.put("batchConflationEnabled", asyncEventQueue.isBatchConflationEnabled());
-          asyncEventQueueJSON.put("asyncEventListener", asyncEventQueue.getAsyncEventListener());
-          asyncEventQueueJSON.put("queueSize", asyncEventQueue.getEventQueueSize());
-
-          asyncEventQueueJsonList.put(asyncEventQueueJSON);
-        }
-        responseJSON.put("asyncEventQueues", asyncEventQueueJsonList);
+    Cluster.Member clusterMember = cluster.getMember(StringUtils
+        .makeCompliantName(memberName));
+
+    if (clusterMember != null) {
+      // response
+      // get gateway receiver
+      Cluster.GatewayReceiver gatewayReceiver = clusterMember.getGatewayReceiver();
 
+      Boolean isGateway = false;
 
-        Map<String,Cluster.Region> clusterRegions = cluster.getClusterRegions();
+      if (gatewayReceiver != null) {
+        responseJSON.put("isGatewayReceiver", true);
+        responseJSON.put("listeningPort", gatewayReceiver.getListeningPort());
+        responseJSON.put("linkTroughput", gatewayReceiver.getLinkThroughput());
+        responseJSON.put("avgBatchLatency", gatewayReceiver.getAvgBatchProcessingTime());
+      } else {
+        responseJSON.put("isGatewayReceiver", false);
+      }
 
-        List<Cluster.Region> clusterRegionsList = new ArrayList<Cluster.Region>();
-        clusterRegionsList.addAll(clusterRegions.values());
-        
-        JSONArray regionsList = new JSONArray();
+      // get gateway senders
+      Cluster.GatewaySender[] gatewaySenders = clusterMember.getMemberGatewaySenders();
 
-        for (Cluster.Region region : clusterRegionsList) {
-          if (region.getWanEnabled()) {
-            JSONObject regionJSON = new JSONObject();
-            regionJSON.put("name", region.getName());
-            regionsList.put(regionJSON);
-          }
+      if (gatewaySenders.length > 0) {
+        isGateway = true;
+      }
+      responseJSON.put("isGatewaySender", isGateway);
+      // Senders
+      ArrayNode gatewaySendersJsonList = mapper.createArrayNode();
+
+      for (Cluster.GatewaySender gatewaySender : gatewaySenders) {
+        ObjectNode gatewaySenderJSON = mapper.createObjectNode();
+        gatewaySenderJSON.put("id", gatewaySender.getId());
+        gatewaySenderJSON.put("queueSize", gatewaySender.getQueueSize());
+        gatewaySenderJSON.put("status", gatewaySender.getStatus());
+        gatewaySenderJSON.put("primary", gatewaySender.getPrimary());
+        gatewaySenderJSON.put("senderType", gatewaySender.getSenderType());
+        gatewaySenderJSON.put("batchSize", gatewaySender.getBatchSize());
+        gatewaySenderJSON.put("PersistenceEnabled", gatewaySender.getPersistenceEnabled());
+        gatewaySenderJSON.put("remoteDSId", gatewaySender.getRemoteDSId());
+        gatewaySenderJSON.put("eventsExceedingAlertThreshold", gatewaySender.getEventsExceedingAlertThreshold());
+
+        gatewaySendersJsonList.add(gatewaySenderJSON);
+      }
+      // senders response
+      responseJSON.put("gatewaySenders", gatewaySendersJsonList);
+
+      // async event queues
+      Cluster.AsyncEventQueue[] asyncEventQueues = clusterMember.getMemberAsyncEventQueueList();
+      ArrayNode asyncEventQueueJsonList = mapper.createArrayNode();
+
+      for (Cluster.AsyncEventQueue asyncEventQueue : asyncEventQueues) {
+        ObjectNode asyncEventQueueJSON = mapper.createObjectNode();
+        asyncEventQueueJSON.put("id", asyncEventQueue.getId());
+        asyncEventQueueJSON.put("primary", asyncEventQueue.getPrimary());
+        asyncEventQueueJSON.put("senderType", asyncEventQueue.isParallel());
+        asyncEventQueueJSON.put("batchSize", asyncEventQueue.getBatchSize());
+        asyncEventQueueJSON.put("batchTimeInterval", asyncEventQueue.getBatchTimeInterval());
+        asyncEventQueueJSON.put("batchConflationEnabled", asyncEventQueue.isBatchConflationEnabled());
+        asyncEventQueueJSON.put("asyncEventListener", asyncEventQueue.getAsyncEventListener());
+        asyncEventQueueJSON.put("queueSize", asyncEventQueue.getEventQueueSize());
+
+        asyncEventQueueJsonList.add(asyncEventQueueJSON);
+      }
+      responseJSON.put("asyncEventQueues", asyncEventQueueJsonList);
+
+      Map<String,Cluster.Region> clusterRegions = cluster.getClusterRegions();
+
+      List<Cluster.Region> clusterRegionsList = new ArrayList<Cluster.Region>();
+      clusterRegionsList.addAll(clusterRegions.values());
+
+      ArrayNode regionsList = mapper.createArrayNode();
+
+      for (Cluster.Region region : clusterRegionsList) {
+        if (region.getWanEnabled()) {
+          ObjectNode regionJSON = mapper.createObjectNode();
+          regionJSON.put("name", region.getName());
+          regionsList.add(regionJSON);
         }
-        responseJSON.put("regionsInvolved", regionsList);
       }
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+      responseJSON.put("regionsInvolved", regionsList);
     }
+
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java
index 0073881..914b053 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberHeapUsageService.java
@@ -19,18 +19,17 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
+import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
-import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class MemberHeapUsageService
@@ -46,40 +45,30 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class MemberHeapUsageService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     // members list
-    try {
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject("MemberHeapUsage")
-          .getString("memberName");
-
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
-      if (clusterMember != null) {
-        // response
-        responseJSON
-            .put(
-                "heapUsageTrend",
-                new JSONArray(
-                    clusterMember
-                        .getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_HEAP_USAGE_SAMPLE)));
-        responseJSON
-            .put("currentHeapUsage", clusterMember.getCurrentHeapSize());
-      }
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberHeapUsage").get("memberName").textValue();
 
-      // Send json response
-      return responseJSON;
+    Cluster.Member clusterMember = cluster.getMember(StringUtils.makeCompliantName(memberName));
 
-    } catch (JSONException e) {
-      throw new Exception(e);
+    if (clusterMember != null) {
+      // response
+      responseJSON.put("heapUsageTrend",
+          mapper.valueToTree(clusterMember.getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_HEAP_USAGE_SAMPLE)));
+      responseJSON.put("currentHeapUsage", clusterMember.getCurrentHeapSize());
     }
+
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
index 9dc6126..4509918 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
@@ -19,18 +19,18 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
 import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class MemberKeyStatisticsService
@@ -46,53 +46,33 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class MemberKeyStatisticsService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception, JSONException {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberKeyStatistics").get("memberName").textValue();
 
-    try {
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject("MemberKeyStatistics")
-          .getString("memberName");
+    Cluster.Member clusterMember = cluster.getMember(StringUtils.makeCompliantName(memberName));
 
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
-      if (clusterMember != null) {
-        // response
-        responseJSON
-            .put(
-                "cpuUsageTrend",
-                new JSONArray(
-                    clusterMember
-                        .getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_CPU_USAGE_SAMPLE)));
-        responseJSON
-            .put(
-                "memoryUsageTrend",
-                new JSONArray(
-                    clusterMember
-                        .getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_HEAP_USAGE_SAMPLE)));
-        responseJSON
-            .put(
-                "readPerSecTrend",
-                new JSONArray(
-                    clusterMember
-                        .getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_GETS_PER_SECOND)));
-        responseJSON
-            .put(
-                "writePerSecTrend",
-                new JSONArray(
-                    clusterMember
-                        .getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_PUTS_PER_SECOND)));
-      }
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+    if (clusterMember != null) {
+      // response
+      responseJSON.put("cpuUsageTrend",
+          mapper.valueToTree(clusterMember.getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_CPU_USAGE_SAMPLE)));
+      responseJSON.put("memoryUsageTrend",
+          mapper.valueToTree(clusterMember.getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_HEAP_USAGE_SAMPLE)));
+      responseJSON.put("readPerSecTrend",
+          mapper.valueToTree(clusterMember.getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_GETS_PER_SECOND)));
+      responseJSON.put("writePerSecTrend",
+          mapper.valueToTree(clusterMember.getMemberStatisticTrend(Cluster.Member.MEMBER_STAT_PUTS_PER_SECOND)));
     }
+    // Send json response
+    return responseJSON;
   }
 }


[08/10] incubator-geode git commit: GEODE-907: Switch all fields from floats to doubles

Posted by je...@apache.org.
GEODE-907: Switch all fields from floats to doubles

- This is because when Jackson serializes a float (to JSON) it does so
  through an implicit cast to a double which alters the precision.
  Practically, a number like 23.99F ends up being 23.98999999234D which
  messes with unit tests and displaying in the UI.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/022733e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/022733e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/022733e8

Branch: refs/heads/develop
Commit: 022733e8837b15b415c466a2e59874e09165e1c1
Parents: e623d8e
Author: Jens Deppe <jd...@pivotal.io>
Authored: Sat Feb 20 12:15:24 2016 -0800
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Feb 23 14:04:51 2016 -0800

----------------------------------------------------------------------
 .../tools/pulse/internal/data/Cluster.java      | 232 +++++++++----------
 .../pulse/internal/data/JMXDataUpdater.java     |  62 ++---
 .../service/ClusterDiskThroughputService.java   |   4 +-
 .../service/ClusterGCPausesService.java         |   4 +-
 .../internal/service/ClusterMemberService.java  |  15 +-
 .../service/ClusterMembersRGraphService.java    |  15 +-
 .../internal/service/ClusterRegionService.java  |   1 +
 .../service/ClusterSelectedRegionService.java   |   6 +-
 .../controllers/PulseControllerJUnitTest.java   |  35 +--
 .../pulse/testbed/PropMockDataUpdater.java      |   8 +-
 .../gemfire/tools/pulse/tests/Member.java       |  16 +-
 .../gemfire/tools/pulse/tests/MemberMBean.java  |   8 +-
 .../tools/pulse/tests/PulseBaseTest.java        |  16 +-
 .../gemfire/tools/pulse/tests/PulseTest.java    |   2 -
 .../gemfire/tools/pulse/tests/Region.java       |  20 +-
 .../gemfire/tools/pulse/tests/RegionMBean.java  |  10 +-
 .../tools/pulse/tests/RegionOnMember.java       |  16 +-
 .../tools/pulse/tests/RegionOnMemberMBean.java  |   8 +-
 .../gemfire/tools/pulse/tests/ServerObject.java |  25 +-
 .../tools/pulse/tests/ServerObjectMBean.java    |  10 +-
 20 files changed, 258 insertions(+), 255 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
index 60b353e..7d5cac2 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
@@ -75,7 +75,7 @@ public class Cluster extends Thread {
   private String serverName;
   private String port;
   private int stale = 0;
-  private float loadPerSec;
+  private double loadPerSec;
 
   // start: fields defined in System MBean
   private IClusterUpdater updater = null;
@@ -84,25 +84,25 @@ public class Cluster extends Thread {
   private long clientConnectionCount;
   private int locatorCount;
   private int totalRegionCount;
-  private Long totalHeapSize = 0L;
-  private Long totalRegionEntryCount;
+  private long totalHeapSize = 0L;
+  private long totalRegionEntryCount;
   private int currentQueryCount;
-  private Long totalBytesOnDisk;
-  private float diskReadsRate;
-  private float diskWritesRate;
-  private float writePerSec;
-  private float readPerSec;
-  private float queriesPerSec;
+  private long totalBytesOnDisk;
+  private double diskReadsRate;
+  private double diskWritesRate;
+  private double writePerSec;
+  private double readPerSec;
+  private double queriesPerSec;
   private int avgDiskStorage;
   private int avgDiskWritesRate;
   private int runningFunctionCount;
-  private Long registeredCQCount;
+  private long registeredCQCount;
   private int subscriptionCount;
   private int serverCount;
   private int txnCommittedCount;
   private int txnRollbackCount;
-  private Long usedHeapSize = 0L;
-  private Long garbageCollectionCount = 0L;
+  private long usedHeapSize = 0L;
+  private long garbageCollectionCount = 0L;
   private int clusterId;
   private int notificationPageNumber = 1;
   private boolean connectedFlag;
@@ -135,7 +135,7 @@ public class Cluster extends Thread {
       MAX_SAMPLE_SIZE);
   private CircularFifoBuffer garbageCollectionTrend = new CircularFifoBuffer(
       MAX_SAMPLE_SIZE);
-  private Long previousJVMPauseCount = 0L;
+  private long previousJVMPauseCount = 0L;
 
   private HashMap<String, Boolean> wanInformation = new HashMap<String, Boolean>();
   private Map<String, Cluster.Statement> clusterStatementMap = new ConcurrentHashMap<String, Cluster.Statement>();
@@ -246,22 +246,22 @@ public class Cluster extends Thread {
     private long totalBytesOnDisk;
     private String memberPort;
 
-    private Float cpuUsage = 0.0f;
-    private Float hostCpuUsage = 0.0f;
-    private Long uptime;
+    private double cpuUsage = 0.0d;
+    private double hostCpuUsage = 0.0d;
+    private long uptime;
     private String name;
-    private float getsRate;
-    private float putsRate;
+    private double getsRate;
+    private double putsRate;
     private boolean isCache;
     private boolean isGateway;
     private boolean isLocator;
     private boolean isServer;
-    private Double loadAverage;
+    private double loadAverage;
     private int numThreads;
-    private Long totalFileDescriptorOpen;
-    private Long garbageCollectionCount = 0L;
-    private float throughputWrites;
-    private float throughputReads;
+    private long totalFileDescriptorOpen;
+    private long garbageCollectionCount = 0L;
+    private double throughputWrites;
+    private double throughputReads;
     private long totalDiskUsage;
     private String queueBacklog;
     private String id;
@@ -288,7 +288,7 @@ public class Cluster extends Thread {
         MAX_SAMPLE_SIZE);
     private CircularFifoBuffer garbageCollectionSamples = new CircularFifoBuffer(
         MAX_SAMPLE_SIZE);
-    private Long previousJVMPauseCount = 0L;
+    private long previousJVMPauseCount = 0L;
 
     private Cluster.GatewayReceiver gatewayReceiver = null;
     private List<Cluster.GatewaySender> gatewaySenderList = new ArrayList<Cluster.GatewaySender>();
@@ -407,19 +407,19 @@ public class Cluster extends Thread {
       this.memberPort = memberPort;
     }
 
-    public float getThroughputWrites() {
+    public double getThroughputWrites() {
       return this.throughputWrites;
     }
 
-    public void setThroughputWrites(float throughputWrites) {
+    public void setThroughputWrites(double throughputWrites) {
       this.throughputWrites = throughputWrites;
     }
 
-    public float getThroughputReads() {
+    public double getThroughputReads() {
       return this.throughputReads;
     }
 
-    public void setThroughputReads(float throughputReads) {
+    public void setThroughputReads(double throughputReads) {
       this.throughputReads = throughputReads;
     }
 
@@ -439,7 +439,7 @@ public class Cluster extends Thread {
       return this.name;
     }
 
-    public Double getLoadAverage() {
+    public double getLoadAverage() {
       return this.loadAverage;
     }
 
@@ -459,7 +459,7 @@ public class Cluster extends Thread {
       return null;
     }
 
-    public Long getUptime() {
+    public long getUptime() {
       return this.uptime;
     }
 
@@ -543,7 +543,7 @@ public class Cluster extends Thread {
       this.bindAddress = bindAddress;
     }
 
-    public void setUptime(Long uptime) {
+    public void setUptime(long uptime) {
       this.uptime = uptime;
     }
 
@@ -567,35 +567,35 @@ public class Cluster extends Thread {
       this.totalBytesOnDisk = totalBytesOnDisk;
     }
 
-    public Float getCpuUsage() {
+    public double getCpuUsage() {
       return this.cpuUsage;
     }
 
-    public void setCpuUsage(Float cpuUsage) {
+    public void setCpuUsage(double cpuUsage) {
       this.cpuUsage = cpuUsage;
     }
 
-    public Float getHostCpuUsage() {
+    public double getHostCpuUsage() {
       return this.hostCpuUsage;
     }
 
-    public void setHostCpuUsage(Float hostCpuUsage) {
+    public void setHostCpuUsage(double hostCpuUsage) {
       this.hostCpuUsage = hostCpuUsage;
     }
 
-    public float getGetsRate() {
+    public double getGetsRate() {
       return this.getsRate;
     }
 
-    public void setGetsRate(float getsRate) {
+    public void setGetsRate(double getsRate) {
       this.getsRate = getsRate;
     }
 
-    public float getPutsRate() {
+    public double getPutsRate() {
       return this.putsRate;
     }
 
-    public void setPutsRate(float putsRate) {
+    public void setPutsRate(double putsRate) {
       this.putsRate = putsRate;
     }
 
@@ -632,19 +632,19 @@ public class Cluster extends Thread {
       this.numThreads = numThreads;
     }
 
-    public Long getTotalFileDescriptorOpen() {
+    public long getTotalFileDescriptorOpen() {
       return this.totalFileDescriptorOpen;
     }
 
-    public void setTotalFileDescriptorOpen(Long totalFileDescriptorOpen) {
+    public void setTotalFileDescriptorOpen(long totalFileDescriptorOpen) {
       this.totalFileDescriptorOpen = totalFileDescriptorOpen;
     }
 
-    public Long getGarbageCollectionCount() {
+    public long getGarbageCollectionCount() {
       return this.garbageCollectionCount;
     }
 
-    public void setGarbageCollectionCount(Long garbageCollectionCount) {
+    public void setGarbageCollectionCount(long garbageCollectionCount) {
       this.garbageCollectionCount = garbageCollectionCount;
     }
 
@@ -773,11 +773,11 @@ public class Cluster extends Thread {
       this.garbageCollectionSamples = garbageCollectionSamples;
     }
 
-    public Long getPreviousJVMPauseCount() {
+    public long getPreviousJVMPauseCount() {
       return this.previousJVMPauseCount;
     }
 
-    public void setPreviousJVMPauseCount(Long previousJVMPauseCount) {
+    public void setPreviousJVMPauseCount(long previousJVMPauseCount) {
       this.previousJVMPauseCount = previousJVMPauseCount;
     }
 
@@ -825,10 +825,10 @@ public class Cluster extends Thread {
           long currCPUTime = 0;
           currCPUTime = updatedClient.getProcessCpuTime();
 
-          float newCPUTime = (float) (currCPUTime - lastCPUTime)
+          double newCPUTime = (double) (currCPUTime - lastCPUTime)
               / (elapsedTime * 1000000000);
 
-          float newCPUUsage = 0;
+          double newCPUUsage = 0;
           int availableCpus = updatedClient.getCpus();
           if (availableCpus > 0) {
             newCPUUsage = newCPUTime / availableCpus;
@@ -1261,10 +1261,10 @@ public class Cluster extends Thread {
     private String memberName;
     private long entrySize;
     private long entryCount;
-    private float getsRate;
-    private float putsRate;
-    private float diskGetsRate;
-    private float diskPutsRate;
+    private double getsRate;
+    private double putsRate;
+    private double diskGetsRate;
+    private double diskPutsRate;
     private int localMaxMemory;
 
     private CircularFifoBuffer getsPerSecTrend = new CircularFifoBuffer(
@@ -1307,56 +1307,56 @@ public class Cluster extends Thread {
     /**
      * @return the putsRate
      */
-    public float getPutsRate() {
+    public double getPutsRate() {
       return putsRate;
     }
 
     /**
      * @param putsRate the putsRate to set
      */
-    public void setPutsRate(float putsRate) {
+    public void setPutsRate(double putsRate) {
       this.putsRate = putsRate;
     }
 
     /**
      * @return the getsRate
      */
-    public float getGetsRate() {
+    public double getGetsRate() {
       return getsRate;
     }
 
     /**
      * @param getsRate the getsRate to set
      */
-    public void setGetsRate(float getsRate) {
+    public void setGetsRate(double getsRate) {
       this.getsRate = getsRate;
     }
 
     /**
      * @return the diskGetsRate
      */
-    public float getDiskGetsRate() {
+    public double getDiskGetsRate() {
       return diskGetsRate;
     }
 
     /**
      * @param diskGetsRate the diskGetsRate to set
      */
-    public void setDiskGetsRate(float diskGetsRate) {
+    public void setDiskGetsRate(double diskGetsRate) {
       this.diskGetsRate = diskGetsRate;
     }
 
     /**
      * @return the diskPutsRate
      */
-    public float getDiskPutsRate() {
+    public double getDiskPutsRate() {
       return diskPutsRate;
     }
 
     /**
      * @param diskPutsRate the diskPutsRate to set
      */
-    public void setDiskPutsRate(float diskPutsRate) {
+    public void setDiskPutsRate(double diskPutsRate) {
       this.diskPutsRate = diskPutsRate;
     }
 
@@ -1500,11 +1500,11 @@ public class Cluster extends Thread {
   public static class Region {
     // start: fields defined in MBean
     private String fullPath;
-    private float diskReadsRate;
-    private float diskWritesRate;
-    private float getsRate;
-    private float putsRate;
-    private float lruEvictionRate;
+    private double diskReadsRate;
+    private double diskWritesRate;
+    private double getsRate;
+    private double putsRate;
+    private double lruEvictionRate;
     private String regionType;
     private long systemRegionEntryCount;
     private int memberCount;
@@ -1659,19 +1659,19 @@ public class Cluster extends Thread {
       this.fullPath = fullPath;
     }
 
-    public float getDiskReadsRate() {
+    public double getDiskReadsRate() {
       return this.diskReadsRate;
     }
 
-    public void setDiskReadsRate(float diskReadsRate) {
+    public void setDiskReadsRate(double diskReadsRate) {
       this.diskReadsRate = diskReadsRate;
     }
 
-    public float getDiskWritesRate() {
+    public double getDiskWritesRate() {
       return this.diskWritesRate;
     }
 
-    public void setDiskWritesRate(float diskWritesRate) {
+    public void setDiskWritesRate(double diskWritesRate) {
       this.diskWritesRate = diskWritesRate;
     }
 
@@ -1692,19 +1692,19 @@ public class Cluster extends Thread {
       this.diskWritesPerSecTrend = diskWritesPerSecTrend;
     }
 
-    public float getGetsRate() {
+    public double getGetsRate() {
       return this.getsRate;
     }
 
-    public void setGetsRate(float getsRate) {
+    public void setGetsRate(double getsRate) {
       this.getsRate = getsRate;
     }
 
-    public float getLruEvictionRate() {
+    public double getLruEvictionRate() {
       return this.lruEvictionRate;
     }
 
-    public void setLruEvictionRate(float lruEvictionRate) {
+    public void setLruEvictionRate(double lruEvictionRate) {
       this.lruEvictionRate = lruEvictionRate;
     }
 
@@ -1732,11 +1732,11 @@ public class Cluster extends Thread {
       this.memberCount = memberCount;
     }
 
-    public float getPutsRate() {
+    public double getPutsRate() {
       return this.putsRate;
     }
 
-    public void setPutsRate(float putsRate) {
+    public void setPutsRate(double putsRate) {
       this.putsRate = putsRate;
     }
 
@@ -1907,7 +1907,7 @@ public class Cluster extends Thread {
     private String name;
     private String host;
     private int queueSize;
-    private float cpuUsage;
+    private double cpuUsage;
     private long uptime;
     private int threads;
     private int gets;
@@ -1975,11 +1975,11 @@ public class Cluster extends Thread {
       this.queueSize = queueSize;
     }
 
-    public float getCpuUsage() {
+    public double getCpuUsage() {
       return this.cpuUsage;
     }
 
-    public void setCpuUsage(float cpuUsage) {
+    public void setCpuUsage(double cpuUsage) {
       this.cpuUsage = cpuUsage;
     }
 
@@ -2050,8 +2050,8 @@ public class Cluster extends Thread {
   public static class GatewayReceiver {
 
     private int listeningPort;
-    private Float linkThroughput;
-    private Long avgBatchProcessingTime;
+    private double linkThroughput;
+    private long avgBatchProcessingTime;
     private String id;
     private int queueSize;
     private Boolean status;
@@ -2065,19 +2065,19 @@ public class Cluster extends Thread {
       this.listeningPort = listeningPort;
     }
 
-    public Float getLinkThroughput() {
+    public double getLinkThroughput() {
       return this.linkThroughput;
     }
 
-    public void setLinkThroughput(Float linkThroughput) {
+    public void setLinkThroughput(double linkThroughput) {
       this.linkThroughput = linkThroughput;
     }
 
-    public Long getAvgBatchProcessingTime() {
+    public long getAvgBatchProcessingTime() {
       return this.avgBatchProcessingTime;
     }
 
-    public void setAvgBatchProcessingTime(Long avgBatchProcessingTime) {
+    public void setAvgBatchProcessingTime(long avgBatchProcessingTime) {
       this.avgBatchProcessingTime = avgBatchProcessingTime;
     }
 
@@ -2122,7 +2122,7 @@ public class Cluster extends Thread {
    */
   public static class GatewaySender {
 
-    private Float linkThroughput;
+    private double linkThroughput;
     private String id;
     private int queueSize;
     private Boolean status;
@@ -2133,11 +2133,11 @@ public class Cluster extends Thread {
     private int remoteDSId;
     private int eventsExceedingAlertThreshold;
 
-    public Float getLinkThroughput() {
+    public double getLinkThroughput() {
       return this.linkThroughput;
     }
 
-    public void setLinkThroughput(Float linkThroughput) {
+    public void setLinkThroughput(double linkThroughput) {
       this.linkThroughput = linkThroughput;
     }
 
@@ -2505,35 +2505,35 @@ public class Cluster extends Thread {
     return this.stale;
   }
 
-  public float getWritePerSec() {
+  public double getWritePerSec() {
     return this.writePerSec;
   }
 
-  public void setWritePerSec(float writePerSec) {
+  public void setWritePerSec(double writePerSec) {
     this.writePerSec = writePerSec;
   }
 
-  public float getReadPerSec() {
+  public double getReadPerSec() {
     return this.readPerSec;
   }
 
-  public void setReadPerSec(float readPerSec) {
+  public void setReadPerSec(double readPerSec) {
     this.readPerSec = readPerSec;
   }
 
-  public float getQueriesPerSec() {
+  public double getQueriesPerSec() {
     return this.queriesPerSec;
   }
 
-  public void setQueriesPerSec(float queriesPerSec) {
+  public void setQueriesPerSec(double queriesPerSec) {
     this.queriesPerSec = queriesPerSec;
   }
 
-  public float getLoadPerSec() {
+  public double getLoadPerSec() {
     return this.loadPerSec;
   }
 
-  public void setLoadPerSec(float loadPerSec) {
+  public void setLoadPerSec(double loadPerSec) {
     this.loadPerSec = loadPerSec;
   }
 
@@ -2557,11 +2557,11 @@ public class Cluster extends Thread {
     this.stopUpdates = stopUpdates;
   }
 
-  public Long getUsedHeapSize() {
+  public long getUsedHeapSize() {
     return this.usedHeapSize;
   }
 
-  public void setUsedHeapSize(Long usedHeapSize) {
+  public void setUsedHeapSize(long usedHeapSize) {
     this.usedHeapSize = usedHeapSize;
   }
 
@@ -2593,7 +2593,7 @@ public class Cluster extends Thread {
     return this.runningFunctionCount;
   }
 
-  public Long getRegisteredCQCount() {
+  public long getRegisteredCQCount() {
     return this.registeredCQCount;
   }
 
@@ -2605,7 +2605,7 @@ public class Cluster extends Thread {
     this.subscriptionCount = subscriptionCount;
   }
 
-  public void setRegisteredCQCount(Long registeredCQCount) {
+  public void setRegisteredCQCount(long registeredCQCount) {
     this.registeredCQCount = registeredCQCount;
   }
 
@@ -2725,19 +2725,19 @@ public class Cluster extends Thread {
     this.totalRegionCount = totalRegionCount;
   }
 
-  public Long getTotalHeapSize() {
+  public long getTotalHeapSize() {
     return this.totalHeapSize;
   }
 
-  public void setTotalHeapSize(Long totalHeapSize) {
+  public void setTotalHeapSize(long totalHeapSize) {
     this.totalHeapSize = totalHeapSize;
   }
 
-  public Long getTotalRegionEntryCount() {
+  public long getTotalRegionEntryCount() {
     return this.totalRegionEntryCount;
   }
 
-  public void setTotalRegionEntryCount(Long totalRegionEntryCount) {
+  public void setTotalRegionEntryCount(long totalRegionEntryCount) {
     this.totalRegionEntryCount = totalRegionEntryCount;
   }
 
@@ -2749,27 +2749,27 @@ public class Cluster extends Thread {
     this.currentQueryCount = currentQueryCount;
   }
 
-  public Long getTotalBytesOnDisk() {
+  public long getTotalBytesOnDisk() {
     return this.totalBytesOnDisk;
   }
 
-  public void setTotalBytesOnDisk(Long totalBytesOnDisk) {
+  public void setTotalBytesOnDisk(long totalBytesOnDisk) {
     this.totalBytesOnDisk = totalBytesOnDisk;
   }
 
-  public float getDiskReadsRate() {
+  public double getDiskReadsRate() {
     return this.diskReadsRate;
   }
 
-  public void setDiskReadsRate(float diskReadsRate) {
+  public void setDiskReadsRate(double diskReadsRate) {
     this.diskReadsRate = diskReadsRate;
   }
 
-  public float getDiskWritesRate() {
+  public double getDiskWritesRate() {
     return this.diskWritesRate;
   }
 
-  public void setDiskWritesRate(float diskWritesRate) {
+  public void setDiskWritesRate(double diskWritesRate) {
     this.diskWritesRate = diskWritesRate;
   }
 
@@ -2797,11 +2797,11 @@ public class Cluster extends Thread {
     this.writePerSecTrend = writePerSecTrend;
   }
 
-  public Long getGarbageCollectionCount() {
+  public long getGarbageCollectionCount() {
     return this.garbageCollectionCount;
   }
 
-  public void setGarbageCollectionCount(Long garbageCollectionCount) {
+  public void setGarbageCollectionCount(long garbageCollectionCount) {
     this.garbageCollectionCount = garbageCollectionCount;
   }
 
@@ -2862,11 +2862,11 @@ public class Cluster extends Thread {
     this.garbageCollectionTrend = garbageCollectionSamples;
   }
 
-  public Long getPreviousJVMPauseCount() {
+  public long getPreviousJVMPauseCount() {
     return this.previousJVMPauseCount;
   }
 
-  public void setPreviousJVMPauseCount(Long previousJVMPauseCount) {
+  public void setPreviousJVMPauseCount(long previousJVMPauseCount) {
     this.previousJVMPauseCount = previousJVMPauseCount;
   }
 
@@ -3301,7 +3301,7 @@ public class Cluster extends Thread {
         m.gatewayReceiver = new Cluster.GatewayReceiver();
       }
       m.gatewayReceiver.listeningPort = Integer.parseInt(port);
-      m.gatewayReceiver.linkThroughput = (float) Math.abs(r.nextInt(10));
+      m.gatewayReceiver.linkThroughput = Math.abs(r.nextInt(10));
       m.gatewayReceiver.avgBatchProcessingTime = (long) Math.abs(r.nextInt(10));
       m.gatewayReceiver.id = String.valueOf(Math.abs(r.nextInt(10)));
       m.gatewayReceiver.queueSize = Math.abs(r.nextInt(10));
@@ -3353,7 +3353,7 @@ public class Cluster extends Thread {
 
       gatewaySender.batchSize = Math.abs(r.nextInt(10));
       gatewaySender.id = String.valueOf(Math.abs(r.nextInt(10)));
-      gatewaySender.linkThroughput = (float) Math.abs(r.nextInt(10));
+      gatewaySender.linkThroughput = Math.abs(r.nextInt(10));
       gatewaySender.persistenceEnabled = true;
       gatewaySender.primary = true;
       gatewaySender.queueSize = Math.abs(r.nextInt(10));
@@ -3418,10 +3418,10 @@ public class Cluster extends Thread {
       m.OffHeapUsedSize = Math.abs(r.nextInt(Math.abs((int) m.maxHeapSize)));
       m.totalDiskUsage = Math.abs(r.nextInt(100));
 
-      Float cpuUsage = r.nextFloat() * 100;
+      double cpuUsage = r.nextDouble() * 100;
       m.cpuUsageSamples.add(cpuUsage);
       m.cpuUsage = cpuUsage;
-      m.hostCpuUsage = r.nextFloat() * 200;
+      m.hostCpuUsage = r.nextDouble() * 200;
 
       m.heapUsageSamples.add(m.currentHeapSize);
       m.loadAverage = (double) Math.abs(r.nextInt(100));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java
index adb7532..71dfa61 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java
@@ -721,13 +721,13 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
           cluster.getTotalBytesOnDiskTrend().add(cluster.getTotalBytesOnDisk());
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
-          cluster.setDiskWritesRate(getFloatAttribute(attribute.getValue(),
+          cluster.setDiskWritesRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           cluster.getThroughoutWritesTrend().add(cluster.getDiskWritesRate());
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEWRITES:
           try {
-            cluster.setWritePerSec(getFloatAttribute(attribute.getValue(),
+            cluster.setWritePerSec(getDoubleAttribute(attribute.getValue(),
                 attribute.getName()));
           } catch (Exception e) {
             cluster.setWritePerSec(0);
@@ -737,7 +737,7 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEREADS:
           try {
-            cluster.setReadPerSec(getFloatAttribute(attribute.getValue(),
+            cluster.setReadPerSec(getDoubleAttribute(attribute.getValue(),
                 attribute.getName()));
           } catch (Exception e) {
             cluster.setReadPerSec(0);
@@ -746,12 +746,12 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
           cluster.getReadPerSecTrend().add(cluster.getReadPerSec());
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_QUERYREQUESTRATE:
-          cluster.setQueriesPerSec(getFloatAttribute(attribute.getValue(),
+          cluster.setQueriesPerSec(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           cluster.getQueriesPerSecTrend().add(cluster.getQueriesPerSec());
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
-          cluster.setDiskReadsRate(getFloatAttribute(attribute.getValue(),
+          cluster.setDiskReadsRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           cluster.getThroughoutReadsTrend().add(cluster.getDiskReadsRate());
           break;
@@ -870,7 +870,7 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
             attribute.getValue(), attribute.getName()));
       } else if (attribute.getName().equals(
           PulseConstants.MBEAN_ATTRIBUTE_EVENTRECEIVEDDATE)) {
-        gatewayReceiver.setLinkThroughput(getFloatAttribute(
+        gatewayReceiver.setLinkThroughput(getDoubleAttribute(
             attribute.getValue(), attribute.getName()));
       } else if (attribute.getName().equals(
           PulseConstants.MBEAN_ATTRIBUTE_AVEARGEBATCHPROCESSINGTIME)) {
@@ -912,7 +912,7 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
       String name = attribute.getName();
       switch (name){
       case PulseConstants.MBEAN_ATTRIBUTE_EVENTRECEIVEDDATE:
-        gatewaySender.setLinkThroughput(getFloatAttribute(attribute.getValue(),
+        gatewaySender.setLinkThroughput(getDoubleAttribute(attribute.getValue(),
             attribute.getName()));
         break;
       case PulseConstants.MBEAN_ATTRIBUTE_BATCHSIZE:
@@ -1292,22 +1292,22 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
                   LOGGER.fine("updateRegionOnMembers : anRom.getEntryCount() = " + anRom.getEntryCount());
                   break;
                 case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
-                  anRom.setPutsRate(getFloatAttribute(attribute.getValue(),
+                  anRom.setPutsRate(getDoubleAttribute(attribute.getValue(),
                       attribute.getName()));
                   LOGGER.fine("updateRegionOnMembers : anRom.getPutsRate() = " + anRom.getPutsRate());
                   break;
                 case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
-                  anRom.setGetsRate(getFloatAttribute(attribute.getValue(),
+                  anRom.setGetsRate(getDoubleAttribute(attribute.getValue(),
                       attribute.getName()));
                   LOGGER.fine("updateRegionOnMembers : anRom.getGetsRate() = " + anRom.getGetsRate());
                   break;
                 case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
-                  anRom.setDiskGetsRate(getFloatAttribute(attribute.getValue(),
+                  anRom.setDiskGetsRate(getDoubleAttribute(attribute.getValue(),
                       attribute.getName()));
                   LOGGER.fine("updateRegionOnMembers : anRom.getDiskGetsRate() = " + anRom.getDiskGetsRate());
                   break;
                 case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
-                  anRom.setDiskPutsRate(getFloatAttribute(attribute.getValue(),
+                  anRom.setDiskPutsRate(getDoubleAttribute(attribute.getValue(),
                       attribute.getName()));
                   LOGGER.fine("updateRegionOnMembers : anRom.getDiskPutsRate() = " + anRom.getDiskPutsRate());
                   break;
@@ -1358,19 +1358,19 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
                   attribute.getName()));
               break;
             case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
-              regionOnMember.setPutsRate(getFloatAttribute(attribute.getValue(),
+              regionOnMember.setPutsRate(getDoubleAttribute(attribute.getValue(),
                   attribute.getName()));
               break;
             case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
-              regionOnMember.setGetsRate(getFloatAttribute(attribute.getValue(),
+              regionOnMember.setGetsRate(getDoubleAttribute(attribute.getValue(),
                   attribute.getName()));
               break;
             case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
-              regionOnMember.setDiskGetsRate(getFloatAttribute(attribute.getValue(),
+              regionOnMember.setDiskGetsRate(getDoubleAttribute(attribute.getValue(),
                   attribute.getName()));
               break;
             case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
-              regionOnMember.setDiskPutsRate(getFloatAttribute(attribute.getValue(),
+              regionOnMember.setDiskPutsRate(getDoubleAttribute(attribute.getValue(),
                   attribute.getName()));
               break;
             case PulseConstants.MBEAN_ATTRIBUTE_LOCALMAXMEMORY:
@@ -1454,11 +1454,11 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
-          region.setDiskReadsRate(getFloatAttribute(attribute.getValue(),
+          region.setDiskReadsRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
-          region.setDiskWritesRate(getFloatAttribute(attribute.getValue(),
+          region.setDiskWritesRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_EMPTYNODES:
@@ -1466,15 +1466,15 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
-          region.setGetsRate(getFloatAttribute(attribute.getValue(),
+          region.setGetsRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_LRUEVICTIONRATE:
-          region.setLruEvictionRate(getFloatAttribute(attribute.getValue(),
+          region.setLruEvictionRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
-          region.setPutsRate(getFloatAttribute(attribute.getValue(),
+          region.setPutsRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_REGIONTYPE:
@@ -1784,12 +1784,12 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
             attribute.getName()));
         break;
       case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
-        member.setThroughputWrites(getFloatAttribute(attribute.getValue(),
+        member.setThroughputWrites(getDoubleAttribute(attribute.getValue(),
             attribute.getName()));
         member.getThroughputWritesTrend().add(member.getThroughputWrites());
         break;
       case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
-        member.setThroughputReads(getFloatAttribute(attribute.getValue(),
+        member.setThroughputReads(getDoubleAttribute(attribute.getValue(),
             attribute.getName()));
         member.getThroughputReadsTrend().add(member.getThroughputReads());
         break;
@@ -1837,14 +1837,14 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
         member.getTotalBytesOnDiskSamples().add(member.getTotalBytesOnDisk());
         break;
       case PulseConstants.MBEAN_ATTRIBUTE_CPUUSAGE:
-        member.setCpuUsage(getFloatAttribute(attribute.getValue(),
+        member.setCpuUsage(getDoubleAttribute(attribute.getValue(),
             attribute.getName()));
         member.getCpuUsageSamples().add(member.getCpuUsage());
         break;
       case PulseConstants.MBEAN_ATTRIBUTE_HOSTCPUUSAGE:
         // Float value is expected for host cpu usage.
         // TODO Remove Float.valueOf() when float value is provided in mbean
-        member.setHostCpuUsage(Float.valueOf(getIntegerAttribute(
+        member.setHostCpuUsage(Double.valueOf(getIntegerAttribute(
             attribute.getValue(), attribute.getName())));
         break;
       case PulseConstants.MBEAN_ATTRIBUTE_MEMBER:
@@ -1856,12 +1856,12 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
             attribute.getName()));
         break;
       case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEREADS:
-        member.setGetsRate(getFloatAttribute(attribute.getValue(),
+        member.setGetsRate(getDoubleAttribute(attribute.getValue(),
             attribute.getName()));
         member.getGetsPerSecond().add(member.getGetsRate());
         break;
       case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEWRITES:
-        member.setPutsRate(getFloatAttribute(attribute.getValue(),
+        member.setPutsRate(getDoubleAttribute(attribute.getValue(),
             attribute.getName()));
         member.getPutsPerSecond().add(member.getPutsRate());
         break;
@@ -2225,23 +2225,23 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
-          region.setDiskReadsRate(getFloatAttribute(attribute.getValue(),
+          region.setDiskReadsRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
-          region.setDiskWritesRate(getFloatAttribute(attribute.getValue(),
+          region.setDiskWritesRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
-          region.setGetsRate(getFloatAttribute(attribute.getValue(),
+          region.setGetsRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_LRUEVICTIONRATE:
-          region.setLruEvictionRate(getFloatAttribute(attribute.getValue(),
+          region.setLruEvictionRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
-          region.setPutsRate(getFloatAttribute(attribute.getValue(),
+          region.setPutsRate(getDoubleAttribute(attribute.getValue(),
               attribute.getName()));
           break;
         case PulseConstants.MBEAN_ATTRIBUTE_REGIONTYPE:

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
index 576f0a3..0b05001 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterDiskThroughputService.java
@@ -55,8 +55,8 @@ public class ClusterDiskThroughputService implements PulseService {
     // cluster's Throughout Writes trend added to json response object
     // CircularFifoBuffer throughoutWritesTrend =
     // cluster.getThroughoutWritesTrend();
-    Float currentThroughputWrites = cluster.getDiskWritesRate();
-    Float currentThroughputReads = cluster.getDiskReadsRate();
+    double currentThroughputWrites = cluster.getDiskWritesRate();
+    double currentThroughputReads = cluster.getDiskReadsRate();
 
     responseJSON.put("currentThroughputReads", currentThroughputReads);
     responseJSON.put("throughputReads",

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
index a9c9d03..263f229 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterGCPausesService.java
@@ -58,7 +58,9 @@ public class ClusterGCPausesService implements PulseService {
 
     ArrayNode pauses = mapper.createArrayNode();
     for (Object obj : cluster.getStatisticTrend(Cluster.CLUSTER_STAT_GARBAGE_COLLECTION)) {
-      pauses.add(obj.toString());
+      if (obj instanceof Number) {
+        pauses.add(((Number) obj).longValue());
+      }
     }
     responseJSON.put("currentGCPauses", cluster.getGarbageCollectionCount());
     responseJSON.put("gCPausesTrend", pauses);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
index 882366d..4b535cb 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
@@ -89,25 +89,22 @@ public class ClusterMemberService implements PulseService {
       }
       memberJSON.put("redundancyZones", mapper.valueToTree(redundancyZones));
 
-      DecimalFormat df2 = new DecimalFormat(
-          PulseConstants.DECIMAL_FORMAT_PATTERN);
+      DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
 
       long usedHeapSize = cluster.getUsedHeapSize();
       long currentHeap = clusterMember.getCurrentHeapSize();
       if (usedHeapSize > 0) {
-        float heapUsage = ((float) currentHeap / (float) usedHeapSize) * 100;
-        memberJSON
-            .put(this.HEAP_USAGE, Double.valueOf(df2.format(heapUsage)));
+        double heapUsage = ((double) currentHeap / (double) usedHeapSize) * 100;
+        memberJSON.put(this.HEAP_USAGE, Double.valueOf(df2.format(heapUsage)));
       } else {
         memberJSON.put(this.HEAP_USAGE, 0);
       }
-      Float currentCPUUsage = clusterMember.getCpuUsage();
+      double currentCPUUsage = clusterMember.getCpuUsage();
 
-      memberJSON.put("cpuUsage", Float.valueOf(df2.format(currentCPUUsage)));
+      memberJSON.put("cpuUsage", df2.format(currentCPUUsage));
       memberJSON.put("currentHeapUsage", clusterMember.getCurrentHeapSize());
       memberJSON.put("isManager", clusterMember.isManager());
-      memberJSON.put("uptime",
-          TimeUtils.convertTimeSecondsToHMS(clusterMember.getUptime()));
+      memberJSON.put("uptime", TimeUtils.convertTimeSecondsToHMS(clusterMember.getUptime()));
       memberJSON.put("loadAvg", clusterMember.getLoadAverage());
       memberJSON.put("sockets", clusterMember.getTotalFileDescriptorOpen());
       memberJSON.put("threads", clusterMember.getNumThreads());

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
index f560b91..44296cb 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
@@ -133,11 +133,11 @@ public class ClusterMembersRGraphService implements PulseService {
 
     for (Map.Entry<String, List<Cluster.Member>> physicalToMem : physicalToMember.entrySet()) {
       String hostName = physicalToMem.getKey();
-      Float hostCpuUsage = 0.0F;
-      Long hostMemoryUsage = (long) 0;
-      Double hostLoadAvg = 0.0;
+      double hostCpuUsage = 0.0;
+      long hostMemoryUsage = 0;
+      double hostLoadAvg = 0.0;
       int hostNumThreads = 0;
-      Long hostSockets = (long) 0;
+      long hostSockets = 0;
       boolean hostSevere = false;
       boolean hostError = false;
       boolean hostWarning = false;
@@ -163,18 +163,17 @@ public class ClusterMembersRGraphService implements PulseService {
         Long usedHeapSize = cluster.getUsedHeapSize();
 
         if (usedHeapSize > 0) {
-          float heapUsage = (currentHeap.floatValue() / usedHeapSize
-              .floatValue()) * 100;
+          double heapUsage = (currentHeap.doubleValue() / usedHeapSize.doubleValue()) * 100;
 
           memberData.put(this.MEMORY_USAGE,
               Double.valueOf(df2.format(heapUsage)));
         } else
           memberData.put(this.MEMORY_USAGE, 0);
 
-        Float currentCPUUsage = member.getCpuUsage();
+        double currentCPUUsage = member.getCpuUsage();
 
         memberData.put(this.CPU_USAGE,
-            Float.valueOf(df2.format(currentCPUUsage)));
+            Double.valueOf(df2.format(currentCPUUsage)));
         memberData.put(this.REGIONS, member.getMemberRegions().size());
         memberData.put(this.HOST, member.getHost());
         if ((member.getMemberPort() == null)

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
index 3e54c36..ca8cd73 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterRegionService.java
@@ -86,6 +86,7 @@ public class ClusterRegionService implements PulseService {
     responseJSON.put("clusterName", cluster.getServerName());
     responseJSON.put("userName", userName);
     responseJSON.put("region", getRegionJson(cluster));
+
     // Send json response
     return responseJSON;
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
index 72640d4..4309c40 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
@@ -155,14 +155,14 @@ public class ClusterSelectedRegionService implements PulseService {
           long usedHeapSize = cluster.getUsedHeapSize();
           long currentHeap = member.getCurrentHeapSize();
           if (usedHeapSize > 0) {
-            float heapUsage = ((float) currentHeap / (float) usedHeapSize) * 100;
+            double heapUsage = ((double) currentHeap / (double) usedHeapSize) * 100;
             regionMember.put("heapUsage", Double.valueOf(df2.format(heapUsage)));
           } else {
             regionMember.put("heapUsage", 0);
           }
-          Float currentCPUUsage = member.getCpuUsage();
+          double currentCPUUsage = member.getCpuUsage();
 
-          regionMember.put("cpuUsage", Float.valueOf(df2.format(currentCPUUsage)));
+          regionMember.put("cpuUsage", Double.valueOf(df2.format(currentCPUUsage)));
           regionMember.put("currentHeapUsage", member.getCurrentHeapSize());
           regionMember.put("isManager", member.isManager());
           regionMember.put("uptime", TimeUtils.convertTimeSecondsToHMS(member.getUptime()));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
index 33e0a1c..664126d 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
@@ -3,13 +3,13 @@ package com.vmware.gemfire.tools.pulse.controllers;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gemstone.gemfire.test.junit.categories.UnitTest;
 import com.vmware.gemfire.tools.pulse.internal.PulseAppListener;
+import com.vmware.gemfire.tools.pulse.internal.ServiceConfiguration;
 import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConfig;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
 import org.apache.commons.collections.buffer.CircularFifoBuffer;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -107,6 +107,8 @@ public class PulseControllerJUnitTest {
     region.setMemberName(new ArrayList<String>() {{
       add(MEMBER_NAME);
     }});
+    region.setPutsRate(12.31D);
+    region.setGetsRate(27.99D);
     Cluster.RegionOnMember regionOnMember = new Cluster.RegionOnMember();
     regionOnMember.setRegionFullPath(REGION_PATH);
     regionOnMember.setMemberName(MEMBER_NAME);
@@ -121,6 +123,7 @@ public class PulseControllerJUnitTest {
     member.setUptime(1L);
     member.setHost(PHYSICAL_HOST_NAME);
     member.setGemfireVersion(GEMFIRE_VERSION);
+    member.setCpuUsage(55.77D);
 
     member.setMemberRegions(new HashMap<String, Cluster.Region>() {{
       put(REGION_NAME, region);
@@ -155,9 +158,9 @@ public class PulseControllerJUnitTest {
       add(3);
     }});
     cluster.setWritePerSecTrend(new CircularFifoBuffer() {{
-      add(1);
-      add(2);
-      add(3);
+      add(1.29);
+      add(2.3);
+      add(3.0);
     }});
     cluster.setThroughoutReadsTrend(new CircularFifoBuffer() {{
       add(1);
@@ -238,7 +241,7 @@ public class PulseControllerJUnitTest {
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.ClusterKeyStatistics.readPerSecTrend").isEmpty())
         .andExpect(jsonPath("$.ClusterKeyStatistics.queriesPerSecTrend").isEmpty())
-        .andExpect(jsonPath("$.ClusterKeyStatistics.writePerSecTrend", contains(1, 2, 3)))
+        .andExpect(jsonPath("$.ClusterKeyStatistics.writePerSecTrend", contains(1.29, 2.3, 3.0)))
     ;
   }
 
@@ -250,7 +253,7 @@ public class PulseControllerJUnitTest {
         .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.ClusterMembers.members[0].serverGroups[0]").value("Default"))
-        .andExpect(jsonPath("$.ClusterMembers.members[0].cpuUsage").value(0D))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].cpuUsage").value(55.77D))
         .andExpect(jsonPath("$.ClusterMembers.members[0].clients").value(1))
         .andExpect(jsonPath("$.ClusterMembers.members[0].heapUsage").value(0))
         .andExpect(jsonPath("$.ClusterMembers.members[0].name").value(MEMBER_NAME))
@@ -275,8 +278,8 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.id").value(0))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].id").value(PHYSICAL_HOST_NAME))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].name").value(PHYSICAL_HOST_NAME))
-        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.loadAvg").isEmpty())
-        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.sockets").isEmpty())
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.loadAvg").value(0D))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.sockets").value(0))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.threads").value(0))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.cpuUsage").value(0D))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.memoryUsage").value(0))
@@ -286,7 +289,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].name").value(MEMBER_NAME))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.gemfireVersion").value(GEMFIRE_VERSION))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.memoryUsage").value(0))
-        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.cpuUsage").value(0D))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.cpuUsage").value(55.77D))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.regions").value(1))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.host").value(PHYSICAL_HOST_NAME))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.port").value("-"))
@@ -325,7 +328,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterRegion.region[0].regionPath").value(REGION_PATH))
         .andExpect(jsonPath("$.ClusterRegion.region[0].diskReadsTrend").isEmpty())
         .andExpect(jsonPath("$.ClusterRegion.region[0].memoryUsage").value("0.0000"))
-        .andExpect(jsonPath("$.ClusterRegion.region[0].getsRate").value(0D))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].getsRate").value(27.99D))
         .andExpect(jsonPath("$.ClusterRegion.region[0].wanEnabled").value(false))
         .andExpect(jsonPath("$.ClusterRegion.region[0].memberCount").value(1))
         .andExpect(jsonPath("$.ClusterRegion.region[0].isHDFSWriteOnly").value("NA"))
@@ -334,7 +337,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterRegion.region[0].emptyNodes").value(0))
         .andExpect(jsonPath("$.ClusterRegion.region[0].type").value(REGION_TYPE))
         .andExpect(jsonPath("$.ClusterRegion.region[0].isEnableOffHeapMemory").value("OFF"))
-        .andExpect(jsonPath("$.ClusterRegion.region[0].putsRate").value(0D))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].putsRate").value(12.31D))
         .andExpect(jsonPath("$.ClusterRegion.region[0].totalMemory").value(0))
         .andExpect(jsonPath("$.ClusterRegion.region[0].entryCount").value(0))
         .andExpect(jsonPath("$.ClusterRegion.region[0].compressionCodec").value("NA"))
@@ -359,7 +362,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterRegions.regions[0].regionPath").value(REGION_PATH))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].diskReadsTrend").isEmpty())
         .andExpect(jsonPath("$.ClusterRegions.regions[0].memoryUsage").value("0.0000"))
-        .andExpect(jsonPath("$.ClusterRegions.regions[0].getsRate").value(0D))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].getsRate").value(27.99D))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].wanEnabled").value(false))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].memberCount").value(1))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].isHDFSWriteOnly").value("NA"))
@@ -368,7 +371,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterRegions.regions[0].emptyNodes").value(0))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].type").value(REGION_TYPE))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].isEnableOffHeapMemory").value("OFF"))
-        .andExpect(jsonPath("$.ClusterRegions.regions[0].putsRate").value(0D))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].putsRate").value(12.31D))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].totalMemory").value(0))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].entryCount").value(0))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].compressionCodec").value("NA"))
@@ -391,12 +394,12 @@ public class PulseControllerJUnitTest {
         .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.lruEvictionRate").value(0D))
-        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.getsRate").value(0D))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.getsRate").value(27.99D))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.emptyNodes").value(0))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.type").value(REGION_TYPE))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.isEnableOffHeapMemory").value("OFF"))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.path").value(REGION_PATH))
-        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].cpuUsage").value(0D))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].cpuUsage").value(55.77D))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].clients").value(1))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].heapUsage").value(0))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].name").value(MEMBER_NAME))
@@ -414,7 +417,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.wanEnabled").value(false))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.memberCount").value(1))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.isHDFSWriteOnly").value("NA"))
-        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.putsRate").value(0D))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.putsRate").value(12.31D))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.totalMemory").value(0))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.entryCount").value(0))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.compressionCodec").value("NA"))

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java
index 51cc279..ee530d2 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java
@@ -89,7 +89,7 @@ public class PropMockDataUpdater implements IClusterUpdater {
     cluster.setTotalHeapSize(totalHeapSize);
     long usedHeapSize  = Math.abs(r.nextInt(2048));
     cluster.setUsedHeapSize(usedHeapSize);
-    float writePerSec = Math.abs(r.nextInt(100));
+    double writePerSec = Math.abs(r.nextInt(100));
     cluster.setWritePerSec(writePerSec);
 
     //propfile
@@ -342,7 +342,7 @@ public class PropMockDataUpdater implements IClusterUpdater {
     if(port==null || "".equals(port))
       port = "1099";
     gatewayReceiver.setListeningPort(Integer.parseInt(port));
-    gatewayReceiver.setLinkThroughput((float) Math.abs(r.nextInt(10)));
+    gatewayReceiver.setLinkThroughput(Math.abs(r.nextInt(10)));
     gatewayReceiver.setAvgBatchProcessingTime((long) Math.abs(r.nextInt(10)));
     gatewayReceiver.setId(String.valueOf(Math.abs(r.nextInt(10))));
     gatewayReceiver.setQueueSize(Math.abs(r.nextInt(10)));
@@ -378,7 +378,7 @@ public class PropMockDataUpdater implements IClusterUpdater {
 
     gatewaySender.setBatchSize(Math.abs(r.nextInt(10)));
     gatewaySender.setId(String.valueOf(Math.abs(r.nextInt(10))));
-    gatewaySender.setLinkThroughput((float) Math.abs(r.nextInt(10)));
+    gatewaySender.setLinkThroughput(Math.abs(r.nextInt(10)));
     gatewaySender.setPersistenceEnabled(true);
     gatewaySender.setPrimary(true);
     gatewaySender.setQueueSize(Math.abs(r.nextInt(10)));
@@ -427,7 +427,7 @@ public class PropMockDataUpdater implements IClusterUpdater {
     m.setCurrentHeapSize(Math.abs(r.nextInt(Math.abs((int) m.getMaxHeapSize()))));
     m.setTotalDiskUsage(Math.abs(r.nextInt(100)));
 
-    Float cpuUsage = r.nextFloat() * 100;
+    double cpuUsage = r.nextDouble() * 100;
     m.getCpuUsageSamples().add(cpuUsage);
     m.setCpuUsage(cpuUsage);
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Member.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Member.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Member.java
index 1649543..98e015e 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Member.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Member.java
@@ -80,8 +80,8 @@ public class Member extends JMXBaseBean implements MemberMBean {
   }
 
   @Override
-  public float getDiskWritesRate() {
-    return getFloat("diskWritesRate");
+  public double getDiskWritesRate() {
+    return getDouble("diskWritesRate");
   }
 
   @Override
@@ -132,8 +132,8 @@ public class Member extends JMXBaseBean implements MemberMBean {
   }
 
   @Override
-  public float getCpuUsage() {
-    return getFloat("cpuUsage");
+  public double getCpuUsage() {
+    return getDouble("cpuUsage");
   }
 
   @Override
@@ -147,13 +147,13 @@ public class Member extends JMXBaseBean implements MemberMBean {
   }
 
   @Override
-  public float getAverageReads() {
-    return getFloat("averageReads");
+  public double getAverageReads() {
+    return getDouble("averageReads");
   }
 
   @Override
-  public float getAverageWrites() {
-    return getFloat("averageWrites");
+  public double getAverageWrites() {
+    return getDouble("averageWrites");
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/MemberMBean.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/MemberMBean.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/MemberMBean.java
index d96fb3b..f57d80f 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/MemberMBean.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/MemberMBean.java
@@ -40,7 +40,7 @@ public interface MemberMBean {
 
   double getLoadAverage();
 
-  float getDiskWritesRate();
+  double getDiskWritesRate();
 
   long getJVMPauses();
 
@@ -60,15 +60,15 @@ public interface MemberMBean {
 
   long getTotalBytesOnDisk();
 
-  float getCpuUsage();
+  double getCpuUsage();
 
   String getMember();
 
   String getId();
 
-  float getAverageReads();
+  double getAverageReads();
 
-  float getAverageWrites();
+  double getAverageWrites();
 
   int getPort();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseBaseTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseBaseTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseBaseTest.java
index f239bb6..f82b10f 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseBaseTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseBaseTest.java
@@ -468,13 +468,13 @@ public class PulseBaseTest extends PulseTest {
 	}
 
 	public void assertMemberSortingByCpuUsage(){
-		Map<Float, String> memberMap = new TreeMap<Float,String>(Collections.reverseOrder());
+		Map<Double, String> memberMap = new TreeMap<>(Collections.reverseOrder());
 		String [] membersNames = splitString(JMXProperties.getInstance().getProperty("members"), " ");
 		for (String member : membersNames) {
 			Member thisMember = new Member(member);
 			memberMap.put(thisMember.getCpuUsage(), thisMember.getMember());
 		}
-		for(Map.Entry<Float,String> entry : memberMap.entrySet()) {
+		for(Map.Entry<Double,String> entry : memberMap.entrySet()) {
 			//here matching painting style to validation that the members are painted according to their cpu usage
 			String refMemberCPUUsage = null;
 			if(entry.getValue().equalsIgnoreCase("M1")){
@@ -510,13 +510,13 @@ public class PulseBaseTest extends PulseTest {
 	}
 
 	public void assertMemberSortingBySGCpuUsage(){
-		Map<Float, String> memberMap = new TreeMap<Float,String>(Collections.reverseOrder());
+		Map<Double, String> memberMap = new TreeMap<>(Collections.reverseOrder());
 		String [] membersNames = splitString(JMXProperties.getInstance().getProperty("members"), " ");
 		for (String member : membersNames) {
 			Member thisMember = new Member(member);
 			memberMap.put(thisMember.getCpuUsage(), thisMember.getMember());
 		}
-		for(Map.Entry<Float,String> entry : memberMap.entrySet()) {
+		for(Map.Entry<Double,String> entry : memberMap.entrySet()) {
 			//here matching painting style to validation that the members are painted according to their cpu usage
 			String refMemberCPUUsage = null;
 			if(entry.getValue().equalsIgnoreCase("M1")){
@@ -588,7 +588,7 @@ public class PulseBaseTest extends PulseTest {
 				sgMembers.put(thisMember.getMember(), thisMember);
 			}
 		}
-		Map<Float, String> memberMap = new TreeMap<Float,String>(Collections.reverseOrder());
+		Map<Double, String> memberMap = new TreeMap<>(Collections.reverseOrder());
 		//SG3(!)M3
 		for(int sgId=1; sgId<=3; sgId++){
 			String sgName = "SG1";
@@ -597,7 +597,7 @@ public class PulseBaseTest extends PulseTest {
 			memberMap.put(m.getCpuUsage(), m.getMember());
 		}
 
-		for(Map.Entry<Float,String> entry : memberMap.entrySet()) {
+		for(Map.Entry<Double,String> entry : memberMap.entrySet()) {
 			//here matching painting style to validation that the members are painted according to their cpu usage
 			String refMemberCPUUsage = null;
 			if(entry.getValue().equalsIgnoreCase("M1")){
@@ -661,13 +661,13 @@ public class PulseBaseTest extends PulseTest {
 
 				rzMembers.put(thisMember.getMember(), thisMember);
 		}
-		Map<Float, String> memberMap = new TreeMap<Float,String>(Collections.reverseOrder());
+		Map<Double, String> memberMap = new TreeMap<>(Collections.reverseOrder());
 		String rzName = "RZ1 RZ2";
 		String memName = "M1" ;
 		Member m = rzMap.get(rzName).get(memName);
 		memberMap.put(m.getCpuUsage(), m.getMember());
 
-		for(Map.Entry<Float,String> entry : memberMap.entrySet()) {
+		for(Map.Entry<Double,String> entry : memberMap.entrySet()) {
 			//here matching painting style to validation that the members are painted according to their cpu usage
 			String refMemberCPUUsage = null;
 			if(entry.getValue().equalsIgnoreCase("M1")){

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
index 00a6096..e945156 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
@@ -131,8 +131,6 @@ public class PulseTest {
   private static final String MEMBER_DROPDOWN_ID = "Members";
   private static final String DATA_DROPDOWN_ID = "Data";
 
-  private static WebDriver initdriver = null;
-
   @BeforeClass
   public static void setUpBeforeClass() throws Exception {
       ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Region.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Region.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Region.java
index a38e572..70476f9 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Region.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Region.java
@@ -72,13 +72,13 @@ public class Region extends JMXBaseBean implements RegionMBean {
   }
 
   @Override
-  public float getDiskReadsRate() {
-    return getFloat("diskReadsRate");
+  public double getDiskReadsRate() {
+    return getDouble("diskReadsRate");
   }
 
   @Override
-  public float getDiskWritesRate() {
-    return getFloat("diskWritesRate");
+  public double getDiskWritesRate() {
+    return getDouble("diskWritesRate");
   }
 
   @Override
@@ -87,18 +87,18 @@ public class Region extends JMXBaseBean implements RegionMBean {
   }
 
   @Override
-  public float getGetsRate() {
-    return getFloat("getsRate");
+  public double getGetsRate() {
+    return getDouble("getsRate");
   }
 
   @Override
-  public float getLruEvictionRate() {
-    return getFloat("lruEvictionRate");
+  public double getLruEvictionRate() {
+    return getDouble("lruEvictionRate");
   }
 
   @Override
-  public float getPutsRate() {
-    return getFloat("putsRate");
+  public double getPutsRate() {
+    return getDouble("putsRate");
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionMBean.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionMBean.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionMBean.java
index b127b32..a408b94 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionMBean.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionMBean.java
@@ -27,17 +27,17 @@ public interface RegionMBean {
 
   String getFullPath();
 
-  float getDiskReadsRate();
+  double getDiskReadsRate();
 
-  float getDiskWritesRate();
+  double getDiskWritesRate();
 
   int getEmptyNodes();
 
-  float getGetsRate();
+  double getGetsRate();
 
-  float getLruEvictionRate();
+  double getLruEvictionRate();
 
-  float getPutsRate();
+  double getPutsRate();
 
   String getRegionType();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMember.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMember.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMember.java
index 1b7d4c3..3f7051b 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMember.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMember.java
@@ -70,23 +70,23 @@ public class RegionOnMember extends JMXBaseBean implements RegionOnMemberMBean {
   }
 
   @Override
-  public float getGetsRate(){
-    return getFloat("getsRate");
+  public double getGetsRate(){
+    return getDouble("getsRate");
   }
 
   @Override
-  public float getPutsRate(){
-    return getFloat("putsRate");
+  public double getPutsRate(){
+    return getDouble("putsRate");
   }
 
   @Override
-  public float getDiskReadsRate(){
-    return getFloat("diskGetsRate");
+  public double getDiskReadsRate(){
+    return getDouble("diskGetsRate");
   }
 
   @Override
-  public float getDiskWritesRate(){
-    return getFloat("diskPutsRate");
+  public double getDiskWritesRate(){
+    return getDouble("diskPutsRate");
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMemberMBean.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMemberMBean.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMemberMBean.java
index e67da24..a247c5d 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMemberMBean.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMemberMBean.java
@@ -38,13 +38,13 @@ public interface RegionOnMemberMBean {
 
   long getEntryCount();
 
-  float getGetsRate();
+  double getGetsRate();
 
-  float getPutsRate();
+  double getPutsRate();
 
-  float getDiskReadsRate();
+  double getDiskReadsRate();
 
-  float getDiskWritesRate();
+  double getDiskWritesRate();
 
   int getLocalMaxMemory();
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObject.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObject.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObject.java
index 01eda38..e663d4f 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObject.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObject.java
@@ -202,32 +202,35 @@ public class ServerObject extends NotificationBroadcasterSupport implements
   }
 
   @Override
-  public float getDiskWritesRate() {
-    return Float.parseFloat(JMXProperties.getInstance().getProperty(
+  public double getDiskWritesRate() {
+    return Double.parseDouble(JMXProperties.getInstance().getProperty(
         getKey("diskWritesRate")));
   }
 
   @Override
-  public float getAverageWrites() {
-    return Float.parseFloat(JMXProperties.getInstance().getProperty(
-        getKey("averageWrites"), ""));
+  public double getAverageWrites() {
+    String val = JMXProperties.getInstance().getProperty(getKey("averageWrites"), "");
+    double ret = Double.parseDouble(val);
+    return ret;
+//    return Double.parseDouble(JMXProperties.getInstance().getProperty(
+//        getKey("averageWrites"), ""));
   }
 
   @Override
-  public float getAverageReads() {
-    return Float.parseFloat(JMXProperties.getInstance().getProperty(
+  public double getAverageReads() {
+    return Double.parseDouble(JMXProperties.getInstance().getProperty(
         getKey("averageReads"), ""));
   }
 
   @Override
-  public float getQueryRequestRate() {
-    return Float.parseFloat(JMXProperties.getInstance().getProperty(
+  public double getQueryRequestRate() {
+    return Double.parseDouble(JMXProperties.getInstance().getProperty(
         getKey("queryRequestRate"), ""));
   }
 
   @Override
-  public float getDiskReadsRate() {
-    return Float.parseFloat(JMXProperties.getInstance().getProperty(
+  public double getDiskReadsRate() {
+    return Double.parseDouble(JMXProperties.getInstance().getProperty(
         getKey("diskReadsRate"), ""));
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/022733e8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObjectMBean.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObjectMBean.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObjectMBean.java
index 19f618e..f5048eb 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObjectMBean.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObjectMBean.java
@@ -59,15 +59,15 @@ public interface ServerObjectMBean {
 
   long getTotalDiskUsage();
 
-  float getDiskWritesRate();
+  double getDiskWritesRate();
 
-  float getAverageWrites();
+  double getAverageWrites();
 
-  float getAverageReads();
+  double getAverageReads();
 
-  float getQueryRequestRate();
+  double getQueryRequestRate();
 
-  float getDiskReadsRate();
+  double getDiskReadsRate();
 
   long getJVMPauses();
 


[07/10] incubator-geode git commit: GEODE-907: Added tests to support impending refactor

Posted by je...@apache.org.
GEODE-907: Added tests to support impending refactor


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/0f272db0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/0f272db0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/0f272db0

Branch: refs/heads/develop
Commit: 0f272db088857c09709c1bedd7afe5ba0050d103
Parents: 6e1b05c
Author: Jens Deppe <jd...@pivotal.io>
Authored: Thu Feb 18 06:18:35 2016 -0800
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Feb 23 14:04:50 2016 -0800

----------------------------------------------------------------------
 geode-pulse/build.gradle                        |  56 +-
 .../internal/controllers/PulseController.java   |   6 +-
 .../tools/pulse/internal/data/Cluster.java      |   6 +
 .../tools/pulse/internal/data/DataBrowser.java  |   8 +-
 .../tools/pulse/internal/data/PulseConfig.java  |  14 +
 .../controllers/PulseControllerJUnitTest.java   | 756 +++++++++++++++++++
 gradle/dependency-versions.properties           |   3 +-
 7 files changed, 813 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0f272db0/geode-pulse/build.gradle
----------------------------------------------------------------------
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index ebd851a..cd3a744 100755
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -26,35 +26,39 @@ sourceSets {
 }
 
 dependencies {
-  compile 'commons-beanutils:commons-beanutils:'+project.'commons-beanutils.version'
-  compile 'commons-collections:commons-collections:'+project.'commons-collections.version'
-  compile 'commons-digester:commons-digester:'+project.'commons-digester.version'
-  compile 'commons-lang:commons-lang:'+project.'commons-lang.version'
-  compile 'org.springframework.ldap:spring-ldap-core:'+project.'spring-ldap-core.version'
-  compile 'org.springframework.security:spring-security-config:'+project.'spring-security.version'
-  compile 'org.springframework.security:spring-security-core:'+project.'spring-security.version'
-  compile 'org.springframework.security:spring-security-ldap:'+project.'spring-security.version'
-  compile 'org.springframework.security:spring-security-web:'+project.'spring-security.version'
-  compile 'org.springframework:spring-tx:'+project.'spring-tx.version'
-
-  providedCompile 'commons-logging:commons-logging:'+project.'commons-logging.version'
-
-  provided 'org.mortbay.jetty:servlet-api:'+project.'mortbay-jetty-servlet-api.version'
-  provided 'com.google.guava:guava:'+project.'guava.version'
+  compile 'commons-beanutils:commons-beanutils:' + project.'commons-beanutils.version'
+  compile 'commons-collections:commons-collections:' + project.'commons-collections.version'
+  compile 'commons-digester:commons-digester:' + project.'commons-digester.version'
+  compile 'commons-lang:commons-lang:' + project.'commons-lang.version'
+  compile 'org.springframework.ldap:spring-ldap-core:' + project.'spring-ldap-core.version'
+  compile 'org.springframework.security:spring-security-config:' + project.'spring-security.version'
+  compile 'org.springframework.security:spring-security-core:' + project.'spring-security.version'
+  compile 'org.springframework.security:spring-security-ldap:' + project.'spring-security.version'
+  compile 'org.springframework.security:spring-security-web:' + project.'spring-security.version'
+  compile 'org.springframework:spring-tx:' + project.'spring-tx.version'
+
+  providedCompile 'commons-logging:commons-logging:' + project.'commons-logging.version'
+
+  provided 'org.mortbay.jetty:servlet-api:' + project.'mortbay-jetty-servlet-api.version'
+  provided 'com.google.guava:guava:' + project.'guava.version'
 
   testCompile project(':geode-junit')
 
-  testCompile 'org.apache.tomcat.embed:tomcat-embed-core:'+project.'tomcat7.version'
-  testCompile 'org.apache.tomcat.embed:tomcat-embed-jasper:'+project.'tomcat7.version'
-  testCompile 'org.apache.tomcat.embed:tomcat-embed-logging-juli:'+project.'tomcat7.version'
-  testCompile 'org.seleniumhq.selenium:selenium-firefox-driver:'+project.'selenium.version'
-  testCompile 'org.seleniumhq.selenium:selenium-api:'+project.'selenium.version'
-  testCompile 'org.seleniumhq.selenium:selenium-remote-driver:'+project.'selenium.version'
-  testCompile 'org.seleniumhq.selenium:selenium-support:'+project.'selenium.version'
-
-  testRuntime 'com.google.code.gson:gson:'+project.'google-gson.version'
-  testRuntime 'org.apache.commons:commons-exec:'+project.'commons-exec.version'
-
+  testCompile 'org.apache.tomcat.embed:tomcat-embed-core:' + project.'tomcat7.version'
+  testCompile 'org.apache.tomcat.embed:tomcat-embed-jasper:' + project.'tomcat7.version'
+  testCompile 'org.apache.tomcat.embed:tomcat-embed-logging-juli:' + project.'tomcat7.version'
+  testCompile 'org.seleniumhq.selenium:selenium-firefox-driver:' + project.'selenium.version'
+  testCompile 'org.seleniumhq.selenium:selenium-api:' + project.'selenium.version'
+  testCompile 'org.seleniumhq.selenium:selenium-remote-driver:' + project.'selenium.version'
+  testCompile 'org.seleniumhq.selenium:selenium-support:' + project.'selenium.version'
+  testCompile 'org.springframework:spring-test:' + project.'springframework.version'
+  testCompile 'org.powermock:powermock-core:' + project.'powermock.version'
+  testCompile 'org.powermock:powermock-module-junit4:' + project.'powermock.version'
+  testCompile 'org.powermock:powermock-api-mockito:' + project.'powermock.version'
+
+  testRuntime 'com.google.code.gson:gson:' + project.'google-gson.version'
+  testRuntime 'org.apache.commons:commons-exec:' + project.'commons-exec.version'
+  testRuntime 'com.jayway.jsonpath:json-path:' + project.'json-path.version'
 }
 
 def generatedResources = "$buildDir/generated-resources/main"

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0f272db0/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
index c8737ce..6abb2de 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/controllers/PulseController.java
@@ -117,7 +117,7 @@ public class PulseController {
               + ((requestMap == null) ? "" : requestMap) });
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
-        LOGGER.fine("Exception Occured : " + e.getMessage());
+        LOGGER.fine("Exception Occurred : " + e.getMessage());
       }
     }
 
@@ -140,7 +140,7 @@ public class PulseController {
       LOGGER.logJSONError(eJSON, null);
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
-        LOGGER.fine("Exception Occured : " + e.getMessage());
+        LOGGER.fine("Exception Occurred : " + e.getMessage());
       }
     }
   }
@@ -253,7 +253,7 @@ public class PulseController {
       LOGGER.logJSONError(eJSON, null);
     } catch (Exception e) {
       if (LOGGER.fineEnabled()) {
-        LOGGER.fine("Exception Occured : " + e.getMessage());
+        LOGGER.fine("Exception Occurred : " + e.getMessage());
       }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0f272db0/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
index 732a1b0..309fdf7 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
@@ -2337,6 +2337,12 @@ public class Cluster extends Thread {
     }
   }
 
+  /**
+   * Default constructor only used for testing
+   */
+  public Cluster() {
+  }
+
 
   /**
    * This function is used for calling getUpdator function of ClusterDataFactory

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0f272db0/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
index dbad2df..f3b4493 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/DataBrowser.java
@@ -49,10 +49,6 @@ public class DataBrowser {
   private final ResourceBundle resourceBundle = Repository.get()
       .getResourceBundle();
 
-  private final String queryHistoryFile = PulseConstants.PULSE_QUERY_HISTORY_FILE_LOCATION
-      + System.getProperty("file.separator")
-      + PulseConstants.PULSE_QUERY_HISTORY_FILE_NAME;
-
   private SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
       PulseConstants.PULSE_QUERY_HISTORY_DATE_PATTERN);
 
@@ -198,7 +194,7 @@ public class DataBrowser {
     JSONObject queriesJSON = new JSONObject();
 
     try {
-      inputStream = new FileInputStream(queryHistoryFile);
+      inputStream = new FileInputStream(Repository.get().getPulseConfig().getQueryHistoryFileName());
       String inputStreamString = new Scanner(inputStream, "UTF-8")
           .useDelimiter("\\A").next();
       queriesJSON = new JSONObject(inputStreamString);
@@ -237,7 +233,7 @@ public class DataBrowser {
     boolean operationStatus = false;
     FileOutputStream fileOut = null;
 
-    File file = new File(queryHistoryFile);
+    File file = new File(Repository.get().getPulseConfig().getQueryHistoryFileName());
     try {
       fileOut = new FileOutputStream(file);
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0f272db0/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConfig.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConfig.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConfig.java
index 627e37c..4470f7f 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConfig.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConfig.java
@@ -53,6 +53,9 @@ public class PulseConfig {
   // Flag for appending log messages
   private Boolean logAppend;
 
+  // Query history log file
+  private String queryHistoryFileName;
+
   public PulseConfig() {
     this.setLogFileName(PulseConstants.PULSE_LOG_FILE_NAME);
     this.LogFileLocation = PulseConstants.PULSE_LOG_FILE_LOCATION;
@@ -61,6 +64,10 @@ public class PulseConfig {
     this.logDatePattern = PulseConstants.PULSE_LOG_MESSAGE_DATE_PATTERN;
     this.logLevel = PulseConstants.PULSE_LOG_LEVEL;
     this.logAppend = PulseConstants.PULSE_LOG_APPEND;
+    this.queryHistoryFileName = PulseConstants.PULSE_QUERY_HISTORY_FILE_LOCATION
+      + System.getProperty("file.separator")
+      + PulseConstants.PULSE_QUERY_HISTORY_FILE_NAME;
+
   }
 
   public String getLogFileName() {
@@ -123,4 +130,11 @@ public class PulseConfig {
     this.logAppend = logAppend;
   }
 
+  public String getQueryHistoryFileName() {
+    return queryHistoryFileName;
+  }
+
+  public void setQueryHistoryFileName(String queryHistoryFileName) {
+    this.queryHistoryFileName = queryHistoryFileName;
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0f272db0/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
new file mode 100644
index 0000000..c4f7a49
--- /dev/null
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
@@ -0,0 +1,756 @@
+package com.vmware.gemfire.tools.pulse.controllers;
+
+import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import com.vmware.gemfire.tools.pulse.internal.PulseAppListener;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.PulseConfig;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
+import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import org.apache.commons.collections.buffer.CircularFifoBuffer;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.modules.junit4.PowerMockRunnerDelegate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.mock.web.MockHttpSession;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.springframework.web.context.WebApplicationContext;
+
+import javax.servlet.ServletContextListener;
+import java.io.File;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.UUID;
+
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doReturn;
+import static org.powermock.api.mockito.PowerMockito.spy;
+import static org.powermock.api.mockito.PowerMockito.when;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
+/**
+ * @author Jens Deppe
+ */
+@Category(IntegrationTest.class)
+@PrepareForTest(Repository.class)
+@RunWith(PowerMockRunner.class)
+@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
+@WebAppConfiguration
+@ContextConfiguration("classpath*:mvc-dispatcher-servlet.xml")
+@PowerMockIgnore("*.IntegrationTest")
+public class PulseControllerJUnitTest {
+
+  @Autowired
+  private WebApplicationContext wac;
+
+  private MockMvc mockMvc;
+
+  private Cluster cluster;
+
+  @Rule
+  public TemporaryFolder tempFolder = new TemporaryFolder();
+
+  private static final String PRINCIPAL_USER = "test-user";
+
+  private static final String MEMBER_ID = "member1";
+  private static final String MEMBER_NAME = "localhost-server";
+  private static final String CLUSTER_NAME = "mock-cluster";
+  private static final String REGION_NAME = "mock-region";
+  private static final String REGION_PATH = "/" + REGION_NAME;
+  private static final String REGION_TYPE = "PARTITION";
+  private static final String AEQ_LISTENER = "async-event-listener";
+  private static final String CLIENT_NAME = "client-1";
+
+  private static final Principal principal;
+
+  static {
+    principal = () -> PRINCIPAL_USER;
+  }
+
+  @Before
+  public void setup() throws Exception {
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
+
+    cluster = Mockito.spy(Cluster.class);
+
+    Cluster.Region region = new Cluster.Region();
+    region.setName(REGION_NAME);
+    region.setFullPath(REGION_PATH);
+    region.setRegionType(REGION_TYPE);
+    region.setMemberCount(1);
+    region.setMemberName(new ArrayList<String>() {{
+      add(MEMBER_NAME);
+    }});
+    Cluster.RegionOnMember regionOnMember = new Cluster.RegionOnMember();
+    regionOnMember.setRegionFullPath(REGION_PATH);
+    regionOnMember.setMemberName(MEMBER_NAME);
+    region.setRegionOnMembers(new ArrayList<Cluster.RegionOnMember>() {{
+      add(regionOnMember);
+    }});
+    cluster.addClusterRegion("/mock-region", region);
+
+    Cluster.Member member = new Cluster.Member();
+    member.setId(MEMBER_ID);
+    member.setName(MEMBER_NAME);
+    member.setUptime(1L);
+
+    member.setMemberRegions(new HashMap<String, Cluster.Region>() {{
+      put(REGION_NAME, region);
+    }});
+
+    Cluster.AsyncEventQueue aeq = new Cluster.AsyncEventQueue();
+    aeq.setAsyncEventListener(AEQ_LISTENER);
+    member.setAsyncEventQueueList(new ArrayList() {{
+      add(aeq);
+    }});
+
+    Cluster.Client client = new Cluster.Client();
+    client.setId("100");
+    client.setName(CLIENT_NAME);
+    client.setUptime(1L);
+    member.setMemberClientsHMap(new HashMap<String, Cluster.Client>() {{
+      put(CLIENT_NAME, client);
+    }});
+
+    cluster.setMembersHMap(new HashMap() {{put(MEMBER_NAME, member);}});
+    cluster.setServerName(CLUSTER_NAME);
+    cluster.setMemoryUsageTrend(new CircularFifoBuffer() {{
+      add(1);
+      add(2);
+      add(3);
+    }});
+
+    Repository repo = Mockito.spy(Repository.class);
+
+    // Set up a partial mock for some static methods
+    spy(Repository.class);
+    when(Repository.class, "get").thenReturn(repo);
+    doReturn(cluster).when(repo).getCluster();
+
+    PulseConfig config = new PulseConfig();
+    File tempQueryLog = tempFolder.newFile("query_history.log");
+    config.setQueryHistoryFileName(tempQueryLog.toString());
+    doReturn(config).when(repo).getPulseConfig();
+  }
+
+  @Test
+  public void pulseUpdateForClusterDetails() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterDetails\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterDetails.userName").value(PRINCIPAL_USER))
+        .andExpect(jsonPath("$.ClusterDetails.totalHeap").value(0))
+        .andExpect(jsonPath("$.ClusterDetails.clusterName").value(CLUSTER_NAME))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterDiskThroughput() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterDiskThroughput\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterDiskThroughput.currentThroughputWrites").value(0))
+        .andExpect(jsonPath("$.ClusterDiskThroughput.throughputReads").isEmpty())
+        .andExpect(jsonPath("$.ClusterDiskThroughput.currentThroughputReads").value(0))
+        .andExpect(jsonPath("$.ClusterDiskThroughput.throughputWrites").isEmpty())
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterGCPauses() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterJVMPauses\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterJVMPauses.currentGCPauses").value(0))
+        .andExpect(jsonPath("$.ClusterJVMPauses.gCPausesTrend").isEmpty())
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterKeyStatistics() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterKeyStatistics\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterKeyStatistics.readPerSecTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterKeyStatistics.queriesPerSecTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterKeyStatistics.writePerSecTrend").isEmpty())
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterMember() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterMembers\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterMembers.members[0].serverGroups[0]").value("Default"))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].cpuUsage").value(0))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].clients").value(1))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].heapUsage").value(0))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].currentHeapUsage").value(0))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].isManager").value(false))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].threads").value(0))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].memberId").value(MEMBER_ID))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].redundancyZones[0]").value("Default"))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterMembersRGraph() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterMembersRGraph\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterMembersRGraph.memberCount").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.data").isEmpty())
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children").isEmpty())
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.name").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.id").value(0))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterMemoryUsage() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterMemoryUsage\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterMemoryUsage.currentMemoryUsage").value(0))
+        .andExpect(jsonPath("$.ClusterMemoryUsage.memoryUsageTrend", containsInAnyOrder(1, 2, 3)))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterRegion() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterRegion\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterRegion.clusterName").value(CLUSTER_NAME))
+        .andExpect(jsonPath("$.ClusterRegion.userName").value(PRINCIPAL_USER))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].regionPath").value(REGION_PATH))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].diskReadsTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterRegion.region[0].memoryUsage").value("0.0000"))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].getsRate").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].wanEnabled").value(false))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].memberCount").value(1))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].isHDFSWriteOnly").value("NA"))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].memberNames[0].name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].memberNames[0].id").value(MEMBER_ID))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].emptyNodes").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].type").value(REGION_TYPE))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].isEnableOffHeapMemory").value("OFF"))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].putsRate").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].totalMemory").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].entryCount").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].compressionCodec").value("NA"))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].name").value(REGION_NAME))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].systemRegionEntryCount").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].persistence").value("OFF"))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].memoryReadsTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterRegion.region[0].diskWritesTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterRegion.region[0].memoryWritesTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterRegion.region[0].dataUsage").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].entrySize").value("0.0000"))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterRegions() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterRegions\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].regionPath").value(REGION_PATH))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].diskReadsTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].memoryUsage").value("0.0000"))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].getsRate").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].wanEnabled").value(false))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].memberCount").value(1))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].isHDFSWriteOnly").value("NA"))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].memberNames[0].name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].memberNames[0].id").value(MEMBER_ID))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].emptyNodes").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].type").value(REGION_TYPE))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].isEnableOffHeapMemory").value("OFF"))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].putsRate").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].totalMemory").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].entryCount").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].compressionCodec").value("NA"))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].name").value(REGION_NAME))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].systemRegionEntryCount").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].persistence").value("OFF"))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].memoryReadsTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].diskWritesTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].memoryWritesTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].dataUsage").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].entrySize").value("0.0000"))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterSelectedRegion() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterSelectedRegion\":{\"regionFullPath\":\"" + REGION_PATH + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.lruEvictionRate").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.getsRate").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.emptyNodes").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.type").value(REGION_TYPE))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.isEnableOffHeapMemory").value("OFF"))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.path").value(REGION_PATH))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].cpuUsage").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].clients").value(1))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].heapUsage").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].currentHeapUsage").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].isManager").value(false))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].threads").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].memberId").value(MEMBER_ID))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].uptime").value("0 Hours 0 Mins 1 Secs"))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.memoryReadsTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.diskWritesTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.dataUsage").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.regionPath").value(REGION_PATH))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.diskReadsTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.memoryUsage").value("0.0000"))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.wanEnabled").value(false))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.memberCount").value(1))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.isHDFSWriteOnly").value("NA"))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.putsRate").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.totalMemory").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.entryCount").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.compressionCodec").value("NA"))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.name").value(REGION_NAME))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.systemRegionEntryCount").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.persistence").value("OFF"))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.memoryWritesTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.entrySize").value("0.0000"))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterSelectedRegionsMember() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterSelectedRegionsMember\":{\"regionFullPath\":\"" + REGION_PATH + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.diskReadsTrend", MEMBER_NAME).isEmpty())
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.regionFullPath", MEMBER_NAME).value(REGION_PATH))
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.entryCount", MEMBER_NAME).value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.accessor", MEMBER_NAME).value("True"))
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.memberName", MEMBER_NAME).value(MEMBER_NAME))
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.memoryReadsTrend", MEMBER_NAME).isEmpty())
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.diskWritesTrend", MEMBER_NAME).isEmpty())
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.memoryWritesTrend", MEMBER_NAME).isEmpty())
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.selectedRegionsMembers.%s.entrySize", MEMBER_NAME).value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.clusterName").value(CLUSTER_NAME))
+        .andExpect(jsonPath("$.ClusterSelectedRegionsMember.userName").value(PRINCIPAL_USER))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForClusterWANInfo() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"ClusterWANInfo\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.ClusterWANInfo.connectedClusters").isEmpty())
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberAsynchEventQueues() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberAsynchEventQueues\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberAsynchEventQueues.isAsyncEventQueuesPresent").value(true))
+        .andExpect(jsonPath("$.MemberAsynchEventQueues.asyncEventQueues[0].batchTimeInterval").value(0))
+        .andExpect(jsonPath("$.MemberAsynchEventQueues.asyncEventQueues[0].batchConflationEnabled").value(false))
+        .andExpect(jsonPath("$.MemberAsynchEventQueues.asyncEventQueues[0].queueSize").value(0))
+        .andExpect(jsonPath("$.MemberAsynchEventQueues.asyncEventQueues[0].senderType").value(false))
+        .andExpect(jsonPath("$.MemberAsynchEventQueues.asyncEventQueues[0].asyncEventListener").value(AEQ_LISTENER))
+        .andExpect(jsonPath("$.MemberAsynchEventQueues.asyncEventQueues[0].batchSize").value(0))
+        .andExpect(jsonPath("$.MemberAsynchEventQueues.asyncEventQueues[0].primary").value(false))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberClients() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberClients\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberClients.name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].puts").value(0))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].cpuUsage").value("0.0000"))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].clientId").value("100"))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].queueSize").value(0))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].clientCQCount").value(0))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].name").value(CLIENT_NAME))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].isConnected").value("No"))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].threads").value(0))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].isSubscriptionEnabled").value("No"))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].gets").value(0))
+        .andExpect(jsonPath("$.MemberClients.memberClients[0].uptime").value("0 Hours 0 Mins 1 Secs"))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberDetails() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberDetails\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberDetails.name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.MemberDetails.offHeapUsedSize").value(0))
+        .andExpect(jsonPath("$.MemberDetails.diskStorageUsed").value(0))
+        .andExpect(jsonPath("$.MemberDetails.regionsCount").value(1))
+        .andExpect(jsonPath("$.MemberDetails.clusterName").value(CLUSTER_NAME))
+        .andExpect(jsonPath("$.MemberDetails.name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.MemberDetails.threads").value(0))
+        .andExpect(jsonPath("$.MemberDetails.clusterId").isNotEmpty())
+        .andExpect(jsonPath("$.MemberDetails.numClients").value(1))
+        .andExpect(jsonPath("$.MemberDetails.userName").value(PRINCIPAL_USER))
+        .andExpect(jsonPath("$.MemberDetails.offHeapFreeSize").value(0))
+        .andExpect(jsonPath("$.MemberDetails.memberId").value(MEMBER_ID))
+        .andExpect(jsonPath("$.MemberDetails.status").value("Normal"))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberDiskThroughput() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberDiskThroughput\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberDiskThroughput.throughputWritesTrend").isEmpty())
+        .andExpect(jsonPath("$.MemberDiskThroughput.throughputReadsTrend").isEmpty())
+        .andExpect(jsonPath("$.MemberDiskThroughput.throughputWrites").value(0))
+        .andExpect(jsonPath("$.MemberDiskThroughput.throughputReads").value(0))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberGatewayHub() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberGatewayHub\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberGatewayHub.isGatewayReceiver").value(false))
+        .andExpect(jsonPath("$.MemberGatewayHub.asyncEventQueues[0].batchTimeInterval").value(0))
+        .andExpect(jsonPath("$.MemberGatewayHub.asyncEventQueues[0].batchConflationEnabled").value(false))
+        .andExpect(jsonPath("$.MemberGatewayHub.asyncEventQueues[0].queueSize").value(0))
+        .andExpect(jsonPath("$.MemberGatewayHub.asyncEventQueues[0].senderType").value(false))
+        .andExpect(jsonPath("$.MemberGatewayHub.asyncEventQueues[0].asyncEventListener").value(AEQ_LISTENER))
+        .andExpect(jsonPath("$.MemberGatewayHub.asyncEventQueues[0].batchSize").value(0))
+        .andExpect(jsonPath("$.MemberGatewayHub.asyncEventQueues[0].primary").value(false))
+        .andExpect(jsonPath("$.MemberGatewayHub.isGatewaySender").value(false))
+        .andExpect(jsonPath("$.MemberGatewayHub.regionsInvolved").isEmpty())
+        .andExpect(jsonPath("$.MemberGatewayHub.gatewaySenders").isEmpty())
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberGCPauses() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberGCPauses\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberGCPauses.gcPausesCount").value(0))
+        .andExpect(jsonPath("$.MemberGCPauses.gcPausesTrend").isEmpty())
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberHeapUsage() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberHeapUsage\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberHeapUsage.heapUsageTrend").isEmpty())
+        .andExpect(jsonPath("$.MemberHeapUsage.currentHeapUsage").value(0))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberKeyStatistics() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberKeyStatistics\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberKeyStatistics.readPerSecTrend").isEmpty())
+        .andExpect(jsonPath("$.MemberKeyStatistics.cpuUsageTrend").isEmpty())
+        .andExpect(jsonPath("$.MemberKeyStatistics.memoryUsageTrend").isEmpty())
+        .andExpect(jsonPath("$.MemberKeyStatistics.writePerSecTrend").isEmpty())
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMemberRegions() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MemberRegions\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MemberRegions.name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.MemberRegions.memberRegions[0].fullPath").value(REGION_PATH))
+        .andExpect(jsonPath("$.MemberRegions.memberRegions[0].entryCount").value(0))
+        .andExpect(jsonPath("$.MemberRegions.memberRegions[0].name").value(REGION_NAME))
+        .andExpect(jsonPath("$.MemberRegions.memberRegions[0].diskStoreName").value(""))
+        .andExpect(jsonPath("$.MemberRegions.memberRegions[0].gatewayEnabled").value(false))
+        .andExpect(jsonPath("$.MemberRegions.memberRegions[0].entrySize").value("0.0000"))
+        .andExpect(jsonPath("$.MemberRegions.memberId").value(MEMBER_ID))
+        .andExpect(jsonPath("$.MemberRegions.status").value("Normal"))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForMembersList() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"MembersList\":{\"memberName\":\"" + MEMBER_NAME + "\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.MembersList.clusterMembers[0].name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.MembersList.clusterMembers[0].memberId").value(MEMBER_ID))
+        .andExpect(jsonPath("$.MembersList.clusterName").value(CLUSTER_NAME))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForPulseVersion() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"PulseVersion\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.PulseVersion.sourceDate").isNotEmpty())
+        .andExpect(jsonPath("$.PulseVersion.sourceRepository").isNotEmpty())
+        .andExpect(jsonPath("$.PulseVersion.pulseVersion").isNotEmpty())
+        .andExpect(jsonPath("$.PulseVersion.sourceRevision").isNotEmpty())
+        .andExpect(jsonPath("$.PulseVersion.buildId").isNotEmpty())
+        .andExpect(jsonPath("$.PulseVersion.buildDate").isNotEmpty())
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForQueryStatistics() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"QueryStatistics\":\"{}\"}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.QueryStatistics.queriesList").isEmpty())
+        .andExpect(jsonPath("$.QueryStatistics.connectedFlag").value(false))
+        .andExpect(jsonPath("$.QueryStatistics.connectedErrorMsg").value(""))
+    ;
+  }
+
+  @Test
+  public void pulseUpdateForSystemAlerts() throws Exception {
+    this.mockMvc.perform(post("/pulseUpdate")
+        .param("pulseData", "{\"SystemAlerts\":{\"pageNumber\":\"1\"}}")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.SystemAlerts.pageNumber").value(1))
+        .andExpect(jsonPath("$.SystemAlerts.connectedFlag").value(false))
+        .andExpect(jsonPath("$.SystemAlerts.connectedErrorMsg").value(""))
+        .andExpect(jsonPath("$.SystemAlerts.systemAlerts").isEmpty())
+    ;
+  }
+
+  @Test
+  public void authenticateUserNotLoggedIn() throws Exception {
+    this.mockMvc.perform(get("/authenticateUser")
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.isUserLoggedIn").value(false));
+  }
+
+  @Test
+  public void authenticateUserLoggedIn() throws Exception {
+    this.mockMvc.perform(get("/authenticateUser")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.isUserLoggedIn").value(true));
+  }
+
+  @Test
+  public void clusterLogout() throws Exception {
+    MockHttpSession mockSession = new MockHttpSession(wac.getServletContext(), UUID.randomUUID().toString());
+    assertFalse(mockSession.isInvalid());
+
+    this.mockMvc.perform(get("/clusterLogout").principal(principal)
+        .session(mockSession)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().is3xxRedirection())
+        .andExpect(redirectedUrl("../Login.html"));
+
+    assertTrue(mockSession.isInvalid());
+  }
+
+  @Test
+  public void pulseVersion() throws Exception {
+    ServletContextListener listener = new PulseAppListener();
+    listener.contextInitialized(null);
+
+    this.mockMvc.perform(get("/pulseVersion")
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.pulseVersion").isNotEmpty())
+        .andExpect(jsonPath("$.buildId").isNotEmpty())
+        .andExpect(jsonPath("$.buildDate").isNotEmpty())
+        .andExpect(jsonPath("$.sourceDate").isNotEmpty())
+        .andExpect(jsonPath("$.sourceRevision").isNotEmpty())
+        .andExpect(jsonPath("$.sourceRepository").isNotEmpty())
+    ;
+  }
+
+  @Test
+  public void clearAlerts() throws Exception {
+    this.mockMvc.perform(get("/clearAlerts")
+        .param("alertType", "1")
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.pageNumber").value(1))
+        .andExpect(jsonPath("$.systemAlerts").isEmpty())
+        .andExpect(jsonPath("$.connectedFlag").value(false))
+        .andExpect(jsonPath("$.status").value("deleted"))
+    ;
+  }
+
+  @Test
+  public void acknowledgeAlert() throws Exception {
+    this.mockMvc.perform(get("/acknowledgeAlert")
+        .param("alertId", "1")
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.status").value("deleted"));
+  }
+
+  @Test
+  public void dataBrowserRegions() throws Exception {
+    this.mockMvc.perform(get("/dataBrowserRegions")
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.clusterName").value(CLUSTER_NAME))
+        .andExpect(jsonPath("$.connectedFlag").value(false))
+        .andExpect(jsonPath("$.clusterRegions[0].fullPath").value(REGION_PATH))
+        .andExpect(jsonPath("$.clusterRegions[0].regionType").value(REGION_TYPE))
+    ;
+  }
+
+  @Test
+  public void dataBrowserQuery() throws Exception {
+    doReturn(new JSONObject().put("foo", "bar")).when(cluster).executeQuery(anyString(), anyString(), anyInt());
+
+    this.mockMvc.perform(get("/dataBrowserQuery")
+        .param("query", "SELECT * FROM " + REGION_PATH)
+        .param("members", MEMBER_NAME)
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.foo").value("bar"))
+    ;
+  }
+
+  @Test
+  public void dataBrowserQueryHistory() throws Exception {
+    dataBrowserQuery();
+
+    this.mockMvc.perform(get("/dataBrowserQueryHistory")
+        .param("action", "view")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.queryHistory[0].queryText").value("SELECT * FROM " + REGION_PATH))
+    ;
+  }
+
+  @Test
+  public void pulseProductSupport() throws Exception {
+    this.mockMvc.perform(get("/pulseProductSupport")
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.product").value("gemfire"))
+    ;
+  }
+
+  @Test
+  public void getQueryStatisticsGridModel() throws Exception {
+    this.mockMvc.perform(get("/getQueryStatisticsGridModel")
+        .principal(principal)
+        .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.columnNames", containsInAnyOrder("Query",
+            "NumExecution",
+            "TotalExecutionTime(ns)",
+            "NumExecutionsInProgress",
+            "NumTimesCompiled",
+            "NumTimesGlobalIndexLookup",
+            "NumRowsModified",
+            "ParseTime(ms)",
+            "BindTime(ms)",
+            "OptimizeTime(ms)",
+            "RoutingInfoTime(ms)",
+            "GenerateTime(ms)",
+            "TotalCompilationTime(ms)",
+            "ExecutionTime(ns)",
+            "ProjectionTime(ns)",
+            "RowsModificationTime(ns)",
+            "QNNumRowsSeen",
+            "QNMsgSendTime(ns)",
+            "QNMsgSerTime(ns)",
+            "QNRespDeSerTime(ns)")))
+    ;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0f272db0/gradle/dependency-versions.properties
----------------------------------------------------------------------
diff --git a/gradle/dependency-versions.properties b/gradle/dependency-versions.properties
index 611ee7a..5012608 100644
--- a/gradle/dependency-versions.properties
+++ b/gradle/dependency-versions.properties
@@ -63,6 +63,7 @@ jetty.version = 9.3.6.v20151106
 jline.version = 2.12
 jmock.version = 2.8.1
 jna.version = 4.0.0
+json-path.version = 1.2.0
 json4s.version = 3.2.4
 jsr305.version = 3.0.1
 junit.version = 4.12
@@ -100,4 +101,4 @@ tomcat6.version = 6.0.37
 tomcat7.version = 7.0.30
 mortbay-jetty-servlet-api.version=2.5-20081211
 selenium.version=2.52.0
-google-gson.version=2.3.1
\ No newline at end of file
+google-gson.version=2.3.1


[06/10] incubator-geode git commit: GEODE-907: Missed some import references

Posted by je...@apache.org.
GEODE-907: Missed some import references


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/b4d4cebb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/b4d4cebb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/b4d4cebb

Branch: refs/heads/develop
Commit: b4d4cebbd4a2fae38bc030876b0abe9f3c7f26c8
Parents: 589ced4
Author: Jens Deppe <jd...@pivotal.io>
Authored: Thu Feb 18 19:35:42 2016 -0800
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Feb 23 14:04:50 2016 -0800

----------------------------------------------------------------------
 .../com/vmware/gemfire/tools/pulse/internal/data/Cluster.java    | 2 ++
 .../vmware/gemfire/tools/pulse/internal/log/PulseLogWriter.java  | 4 +---
 .../pulse/internal/service/MemberDiskThroughputService.java      | 3 +--
 .../tools/pulse/internal/service/MemberKeyStatisticsService.java | 3 +--
 4 files changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4d4cebb/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
index 5c6bb40..471cc01 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/Cluster.java
@@ -59,6 +59,8 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.commons.collections.buffer.CircularFifoBuffer;
 
+import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
+
 /**
  * Class Cluster This class is the Data Model for the data used for the Pulse
  * Web UI.

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4d4cebb/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/log/PulseLogWriter.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/log/PulseLogWriter.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/log/PulseLogWriter.java
index 3706f12..9c7358a 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/log/PulseLogWriter.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/log/PulseLogWriter.java
@@ -28,8 +28,6 @@ import java.util.logging.Logger;
 
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConfig;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.log.MessageFormatter;
 
 /**
  * Class PulseLogWriter
@@ -97,7 +95,7 @@ public class PulseLogWriter implements LogWriter {
    * @param jsonErr
    * @param errorData
    */
-  public void logJSONError(JSONException jsonErr, Object errorData) {
+  public void logJSONError(Exception jsonErr, Object errorData) {
 
     // print details of thrown exception and data that couldn't be converted to
     // json

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4d4cebb/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
index 145c0b9..1b2d6ad 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDiskThroughputService.java
@@ -24,7 +24,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
@@ -48,7 +47,7 @@ public class MemberDiskThroughputService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode execute(final HttpServletRequest request) throws Exception, JSONException {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4d4cebb/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
index 2c70d84..7fd317b 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberKeyStatisticsService.java
@@ -24,7 +24,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
@@ -48,7 +47,7 @@ public class MemberKeyStatisticsService implements PulseService {
 
   private final ObjectMapper mapper = new ObjectMapper();
 
-  public ObjectNode execute(final HttpServletRequest request) throws Exception, JSONException {
+  public ObjectNode execute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();


[09/10] incubator-geode git commit: GEODE-907: Clean up some issues after rebasing

Posted by je...@apache.org.
GEODE-907: Clean up some issues after rebasing

- CPU usage should be a double and not a string


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/f42c86d8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/f42c86d8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/f42c86d8

Branch: refs/heads/develop
Commit: f42c86d81c4e9d84432056c508831a26d9e946d7
Parents: 022733e
Author: Jens Deppe <jd...@pivotal.io>
Authored: Sat Feb 20 21:56:25 2016 -0800
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Feb 23 14:04:51 2016 -0800

----------------------------------------------------------------------
 geode-pulse/build.gradle                                |  3 +++
 .../pulse/internal/service/ClusterMemberService.java    | 12 ++++++++----
 .../pulse/controllers/PulseControllerJUnitTest.java     |  3 +--
 3 files changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f42c86d8/geode-pulse/build.gradle
----------------------------------------------------------------------
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index cf07751..4879345 100755
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -36,6 +36,9 @@ dependencies {
   compile 'org.springframework.security:spring-security-ldap:' + project.'spring-security.version'
   compile 'org.springframework.security:spring-security-web:' + project.'spring-security.version'
   compile 'org.springframework:spring-tx:' + project.'spring-tx.version'
+  compile 'com.fasterxml.jackson.core:jackson-annotations:' + project.'jackson.version'
+  compile 'com.fasterxml.jackson.core:jackson-core:' + project.'jackson.version'
+  compile 'com.fasterxml.jackson.core:jackson-databind:' + project.'jackson.version'
 
   providedCompile 'commons-logging:commons-logging:' + project.'commons-logging.version'
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f42c86d8/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
index 4b535cb..25c405a 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
@@ -32,6 +32,8 @@ import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
@@ -89,19 +91,17 @@ public class ClusterMemberService implements PulseService {
       }
       memberJSON.put("redundancyZones", mapper.valueToTree(redundancyZones));
 
-      DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
-
       long usedHeapSize = cluster.getUsedHeapSize();
       long currentHeap = clusterMember.getCurrentHeapSize();
       if (usedHeapSize > 0) {
         double heapUsage = ((double) currentHeap / (double) usedHeapSize) * 100;
-        memberJSON.put(this.HEAP_USAGE, Double.valueOf(df2.format(heapUsage)));
+        memberJSON.put(this.HEAP_USAGE, truncate(heapUsage, 2));
       } else {
         memberJSON.put(this.HEAP_USAGE, 0);
       }
       double currentCPUUsage = clusterMember.getCpuUsage();
 
-      memberJSON.put("cpuUsage", df2.format(currentCPUUsage));
+      memberJSON.put("cpuUsage", truncate(currentCPUUsage, 2));
       memberJSON.put("currentHeapUsage", clusterMember.getCurrentHeapSize());
       memberJSON.put("isManager", clusterMember.isManager());
       memberJSON.put("uptime", TimeUtils.convertTimeSecondsToHMS(clusterMember.getUptime()));
@@ -125,4 +125,8 @@ public class ClusterMemberService implements PulseService {
     // Send json response
     return responseJSON;
   }
+
+  private double truncate(double value, int places) {
+    return new BigDecimal(value).setScale(places, RoundingMode.HALF_UP).doubleValue();
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f42c86d8/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
index 664126d..9ae6c0c 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
@@ -3,7 +3,6 @@ package com.vmware.gemfire.tools.pulse.controllers;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gemstone.gemfire.test.junit.categories.UnitTest;
 import com.vmware.gemfire.tools.pulse.internal.PulseAppListener;
-import com.vmware.gemfire.tools.pulse.internal.ServiceConfiguration;
 import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConfig;
@@ -123,7 +122,7 @@ public class PulseControllerJUnitTest {
     member.setUptime(1L);
     member.setHost(PHYSICAL_HOST_NAME);
     member.setGemfireVersion(GEMFIRE_VERSION);
-    member.setCpuUsage(55.77D);
+    member.setCpuUsage(55.77123D);
 
     member.setMemberRegions(new HashMap<String, Cluster.Region>() {{
       put(REGION_NAME, region);


[03/10] incubator-geode git commit: GEODE-907: Converted core functionality to use jackson

Posted by je...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java
index 2c17886..05a96ec 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberRegionsService.java
@@ -19,22 +19,21 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import java.text.DecimalFormat;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.DecimalFormat;
 
 /**
  * Class MemberRegionsService
@@ -50,91 +49,80 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class MemberRegionsService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   // String constants used for forming a json response
   private final String NAME = "name";
   private final String ENTRY_SIZE = "entrySize";
   private final String DISC_STORE_NAME = "diskStoreName";
   private final String DISC_SYNCHRONOUS = "diskSynchronous";
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      String memberName = requestDataJSON.getJSONObject("MemberRegions")
-          .getString("memberName");
-
-      Cluster.Member clusterMember = cluster.getMember(StringUtils
-          .makeCompliantName(memberName));
-
-      if (clusterMember != null) {
-        responseJSON.put("memberId", clusterMember.getId());
-        responseJSON.put(this.NAME, clusterMember.getName());
-        responseJSON.put("host", clusterMember.getHost());
-
-        // member's regions
-        Cluster.Region[] memberRegions = clusterMember.getMemberRegionsList();
-        JSONArray regionsListJson = new JSONArray();
-        for (Cluster.Region memberRegion : memberRegions) {
-          JSONObject regionJSON = new JSONObject();
-          regionJSON.put(this.NAME, memberRegion.getName());
-
-          if (PulseConstants.PRODUCT_NAME_SQLFIRE
-              .equalsIgnoreCase(PulseController.getPulseProductSupport())) {
-            // Convert region path to dot separated region path
-            regionJSON.put("fullPath", StringUtils
-                .getTableNameFromRegionName(memberRegion.getFullPath()));
-          } else {
-            regionJSON.put("fullPath", memberRegion.getFullPath());
-          }
-
-          regionJSON.put("type", memberRegion.getRegionType());
-          regionJSON
-              .put("entryCount", memberRegion.getSystemRegionEntryCount());
-          Long entrySize = memberRegion.getEntrySize();
-
-          DecimalFormat form = new DecimalFormat(
-              PulseConstants.DECIMAL_FORMAT_PATTERN_2);
-          String entrySizeInMB = form.format(entrySize / (1024f * 1024f));
-
-          if (entrySize < 0) {
-            regionJSON.put(this.ENTRY_SIZE, this.VALUE_NA);
-          } else {
-            regionJSON.put(this.ENTRY_SIZE, entrySizeInMB);
-          }
-          regionJSON.put("scope", memberRegion.getScope());
-          String diskStoreName = memberRegion.getDiskStoreName();
-          if (StringUtils.isNotNullNotEmptyNotWhiteSpace(diskStoreName)) {
-            regionJSON.put(this.DISC_STORE_NAME, diskStoreName);
-            regionJSON.put(this.DISC_SYNCHRONOUS,
-                memberRegion.isDiskSynchronous());
-          } else {
-            regionJSON.put(this.DISC_SYNCHRONOUS, this.VALUE_NA);
-            regionJSON.put(this.DISC_STORE_NAME, "");
-          }
-          regionJSON.put("gatewayEnabled", memberRegion.getWanEnabled());
-
-          regionsListJson.put(regionJSON);
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    String memberName = requestDataJSON.get("MemberRegions").get("memberName").textValue();
+
+    Cluster.Member clusterMember = cluster.getMember(StringUtils.makeCompliantName(memberName));
+
+    if (clusterMember != null) {
+      responseJSON.put("memberId", clusterMember.getId());
+      responseJSON.put(this.NAME, clusterMember.getName());
+      responseJSON.put("host", clusterMember.getHost());
+
+      // member's regions
+      Cluster.Region[] memberRegions = clusterMember.getMemberRegionsList();
+      ArrayNode regionsListJson = mapper.createArrayNode();
+      for (Cluster.Region memberRegion : memberRegions) {
+        ObjectNode regionJSON = mapper.createObjectNode();
+        regionJSON.put(this.NAME, memberRegion.getName());
+
+        if (PulseConstants.PRODUCT_NAME_SQLFIRE.equalsIgnoreCase(PulseController.getPulseProductSupport())) {
+          // Convert region path to dot separated region path
+          regionJSON.put("fullPath", StringUtils.getTableNameFromRegionName(memberRegion.getFullPath()));
+        } else {
+          regionJSON.put("fullPath", memberRegion.getFullPath());
         }
-        responseJSON.put("memberRegions", regionsListJson);
 
-        // response
-        responseJSON.put("status", "Normal");
+        regionJSON.put("type", memberRegion.getRegionType());
+        regionJSON.put("entryCount", memberRegion.getSystemRegionEntryCount());
+        Long entrySize = memberRegion.getEntrySize();
 
+        DecimalFormat form = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN_2);
+        String entrySizeInMB = form.format(entrySize / (1024f * 1024f));
+
+        if (entrySize < 0) {
+          regionJSON.put(this.ENTRY_SIZE, this.VALUE_NA);
+        } else {
+          regionJSON.put(this.ENTRY_SIZE, entrySizeInMB);
+        }
+        regionJSON.put("scope", memberRegion.getScope());
+        String diskStoreName = memberRegion.getDiskStoreName();
+        if (StringUtils.isNotNullNotEmptyNotWhiteSpace(diskStoreName)) {
+          regionJSON.put(this.DISC_STORE_NAME, diskStoreName);
+          regionJSON.put(this.DISC_SYNCHRONOUS,
+              memberRegion.isDiskSynchronous());
+        } else {
+          regionJSON.put(this.DISC_SYNCHRONOUS, this.VALUE_NA);
+          regionJSON.put(this.DISC_STORE_NAME, "");
+        }
+        regionJSON.put("gatewayEnabled", memberRegion.getWanEnabled());
+
+        regionsListJson.add(regionJSON);
       }
+      responseJSON.put("memberRegions", regionsListJson);
 
-      // Send json response
-      return responseJSON;
+      // response
+      responseJSON.put("status", "Normal");
 
-    } catch (JSONException e) {
-      throw new Exception(e);
     }
+
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java
index 3a730c5..9ea701a 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MembersListService.java
@@ -19,11 +19,11 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
@@ -43,35 +43,34 @@ import javax.servlet.http.HttpServletRequest;
 @Scope("singleton")
 public class MembersListService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
     // members list
-    JSONArray memberListJson = new JSONArray();
+    ArrayNode memberListJson = mapper.createArrayNode();
     Cluster.Member[] memberSet = cluster.getMembers();
 
-    try {
-      for (Cluster.Member member : memberSet) {
-        JSONObject memberJSON = new JSONObject();
-        memberJSON.put("memberId", member.getId());
-        memberJSON.put("name", member.getName());
-        memberJSON.put("host", member.getHost());
-        memberJSON.put("hostnameForClients", member.getHostnameForClients());
-        memberListJson.put(memberJSON);
-      }
+    for (Cluster.Member member : memberSet) {
+      ObjectNode memberJSON = mapper.createObjectNode();
+      memberJSON.put("memberId", member.getId());
+      memberJSON.put("name", member.getName());
+      memberJSON.put("host", member.getHost());
 
-      // Response JSON
-      responseJSON.put("clusterMembers", memberListJson);
-      responseJSON.put("clusterName", cluster.getServerName());
-      // Send json response
-      return responseJSON;
-    } catch (JSONException e) {
-      throw new Exception(e);
+      memberListJson.add(memberJSON);
     }
+
+    // Response JSON
+    responseJSON.put("clusterMembers", memberListJson);
+    responseJSON.put("clusterName", cluster.getServerName());
+
+    // Send json response
+    return responseJSON;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java
index e01c911..f3a6ee9 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseService.java
@@ -21,6 +21,7 @@ package com.vmware.gemfire.tools.pulse.internal.service;
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 
 /**
@@ -37,6 +38,11 @@ public interface PulseService {
   String VALUE_ON = "ON";
   String VALUE_OFF = "OFF";
 
-  JSONObject execute(HttpServletRequest httpServletRequest)
-      throws Exception;
+  default JSONObject execute(HttpServletRequest httpServletRequest) throws Exception {
+    return null;
+  }
+
+  default ObjectNode tempExecute(HttpServletRequest httpServletRequest) throws Exception {
+    return null;
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java
index 7d6a7ef..b2e15c9 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/PulseVersionService.java
@@ -19,15 +19,14 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class PulseVersionService
@@ -45,28 +44,21 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 @Scope("singleton")
 public class PulseVersionService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    // Response
+    responseJSON.put("pulseVersion", PulseController.pulseVersion.getPulseVersion());
+    responseJSON.put("buildId", PulseController.pulseVersion.getPulseBuildId());
+    responseJSON.put("buildDate", PulseController.pulseVersion.getPulseBuildDate());
+    responseJSON.put("sourceDate", PulseController.pulseVersion.getPulseSourceDate());
+    responseJSON.put("sourceRevision", PulseController.pulseVersion.getPulseSourceRevision());
+    responseJSON.put("sourceRepository", PulseController.pulseVersion.getPulseSourceRepository());
 
-    try {
-      // Response
-      responseJSON.put("pulseVersion",
-          PulseController.pulseVersion.getPulseVersion());
-      responseJSON.put("buildId",
-          PulseController.pulseVersion.getPulseBuildId());
-      responseJSON.put("buildDate",
-          PulseController.pulseVersion.getPulseBuildDate());
-      responseJSON.put("sourceDate",
-          PulseController.pulseVersion.getPulseSourceDate());
-      responseJSON.put("sourceRevision",
-          PulseController.pulseVersion.getPulseSourceRevision());
-      responseJSON.put("sourceRepository",
-          PulseController.pulseVersion.getPulseSourceRepository());
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
     // Send json response
     return responseJSON;
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java
index a20a2ed..c3987b2 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/QueryStatisticsService.java
@@ -21,6 +21,9 @@ package com.vmware.gemfire.tools.pulse.internal.service;
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
@@ -46,107 +49,71 @@ import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 @Scope("singleton")
 public class QueryStatisticsService implements PulseService {
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   @Override
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
+    ObjectNode responseJSON = mapper.createObjectNode();
 
-    try {
-      Cluster.Statement[] stmts = cluster.getStatements();
+    Cluster.Statement[] stmts = cluster.getStatements();
 
-      JSONObject queryJSON;
-      JSONArray queryListJson = new JSONArray();
-      for (int i = 0; i < stmts.length; ++i) {
-        queryJSON = new JSONObject();
-        queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_QUERYDEFINITION,
-            stmts[i].getQueryDefinition());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESCOMPILED,
-            (stmts[i].getNumTimesCompiled() < 0) ? this.VALUE_NA : stmts[i]
-                .getNumTimesCompiled());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTION,
-            (stmts[i].getNumExecution() < 0) ? this.VALUE_NA : stmts[i]
-                .getNumExecution());
-        queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTIONSINPROGRESS,
-            (stmts[i].getNumExecutionsInProgress() < 0) ? this.VALUE_NA
-                : stmts[i].getNumExecutionsInProgress());
-        queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESGLOBALINDEXLOOKUP,
-            (stmts[i].getNumTimesGlobalIndexLookup() < 0) ? this.VALUE_NA
-                : stmts[i].getNumTimesGlobalIndexLookup());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_NUMROWSMODIFIED,
-            (stmts[i].getNumRowsModified() < 0) ? this.VALUE_NA : stmts[i]
-                .getNumRowsModified());
-        queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_PARSETIME, (stmts[i]
-            .getParseTime() < 0) ? this.VALUE_NA : stmts[i].getParseTime());
-        queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_BINDTIME, (stmts[i]
-            .getBindTime() < 0) ? this.VALUE_NA : stmts[i].getBindTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_OPTIMIZETIME,
-            (stmts[i].getOptimizeTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getOptimizeTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_ROUTINGINFOTIME,
-            (stmts[i].getRoutingInfoTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getRoutingInfoTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_GENERATETIME,
-            (stmts[i].getGenerateTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getGenerateTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_TOTALCOMPILATIONTIME,
-            (stmts[i].getTotalCompilationTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getTotalCompilationTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_EXECUTIONTIME,
-            (stmts[i].getExecutionTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getExecutionTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_PROJECTIONTIME,
-            (stmts[i].getProjectionTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getProjectionTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_TOTALEXECUTIONTIME,
-            (stmts[i].getTotalExecutionTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getTotalExecutionTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_ROWSMODIFICATIONTIME,
-            (stmts[i].getRowsModificationTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getRowsModificationTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_QNNUMROWSSEEN,
-            (stmts[i].getqNNumRowsSeen() < 0) ? this.VALUE_NA : stmts[i]
-                .getqNNumRowsSeen());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_QNMSGSENDTIME,
-            (stmts[i].getqNMsgSendTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getqNMsgSendTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_QNMSGSERTIME,
-            (stmts[i].getqNMsgSerTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getqNMsgSerTime());
-        queryJSON.put(
-            PulseConstants.MBEAN_ATTRIBUTE_QNRESPDESERTIME,
-            (stmts[i].getqNRespDeSerTime() < 0) ? this.VALUE_NA : stmts[i]
-                .getqNRespDeSerTime());
-        queryListJson.put(queryJSON);
-      }
-      responseJSON.put("queriesList", queryListJson);
+    ArrayNode queryListJson = mapper.createArrayNode();
+    for (int i = 0; i < stmts.length; ++i) {
+      ObjectNode queryJSON = mapper.createObjectNode();
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_QUERYDEFINITION, stmts[i].getQueryDefinition());
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESCOMPILED,
+          mapper.valueToTree(stmts[i].getNumTimesCompiled() < 0 ? this.VALUE_NA : stmts[i].getNumTimesCompiled()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTION,
+          mapper.valueToTree(stmts[i].getNumExecution() < 0 ? this.VALUE_NA : stmts[i].getNumExecution()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTIONSINPROGRESS,
+          mapper.valueToTree(stmts[i].getNumExecutionsInProgress() < 0 ? this.VALUE_NA : stmts[i].getNumExecutionsInProgress()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESGLOBALINDEXLOOKUP,
+          mapper.valueToTree(stmts[i].getNumTimesGlobalIndexLookup() < 0 ? this.VALUE_NA : stmts[i].getNumTimesGlobalIndexLookup()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_NUMROWSMODIFIED,
+          mapper.valueToTree(stmts[i].getNumRowsModified() < 0 ? this.VALUE_NA : stmts[i].getNumRowsModified()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_PARSETIME,
+          mapper.valueToTree(stmts[i].getParseTime() < 0 ? this.VALUE_NA : stmts[i].getParseTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_BINDTIME,
+          mapper.valueToTree(stmts[i].getBindTime() < 0 ? this.VALUE_NA : stmts[i].getBindTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_OPTIMIZETIME,
+          mapper.valueToTree(stmts[i].getOptimizeTime() < 0 ? this.VALUE_NA : stmts[i].getOptimizeTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_ROUTINGINFOTIME,
+          mapper.valueToTree(stmts[i].getRoutingInfoTime() < 0 ? this.VALUE_NA : stmts[i].getRoutingInfoTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_GENERATETIME,
+          mapper.valueToTree(stmts[i].getGenerateTime() < 1 ? this.VALUE_NA : stmts[i].getGenerateTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_TOTALCOMPILATIONTIME,
+          mapper.valueToTree(stmts[i].getTotalCompilationTime() < 0 ? this.VALUE_NA : stmts[i].getTotalCompilationTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_EXECUTIONTIME,
+          mapper.valueToTree(stmts[i].getExecutionTime() < 0 ? this.VALUE_NA : stmts[i].getExecutionTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_PROJECTIONTIME,
+          mapper.valueToTree(stmts[i].getProjectionTime() < 0 ? this.VALUE_NA : stmts[i].getProjectionTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_TOTALEXECUTIONTIME,
+          mapper.valueToTree(stmts[i].getTotalExecutionTime() < 0 ? this.VALUE_NA : stmts[i].getTotalExecutionTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_ROWSMODIFICATIONTIME,
+          mapper.valueToTree(stmts[i].getRowsModificationTime() < 0 ? this.VALUE_NA : stmts[i].getRowsModificationTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_QNNUMROWSSEEN,
+          mapper.valueToTree(stmts[i].getqNNumRowsSeen() < 0 ? this.VALUE_NA : stmts[i].getqNNumRowsSeen()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_QNMSGSENDTIME,
+          mapper.valueToTree(stmts[i].getqNMsgSendTime() < 0 ? this.VALUE_NA : stmts[i].getqNMsgSendTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_QNMSGSERTIME,
+          mapper.valueToTree(stmts[i].getqNMsgSerTime() < 0 ? this.VALUE_NA : stmts[i].getqNMsgSerTime()));
+      queryJSON.put(PulseConstants.MBEAN_ATTRIBUTE_QNRESPDESERTIME,
+          mapper.valueToTree(stmts[i].getqNRespDeSerTime() < 0 ? this.VALUE_NA : stmts[i].getqNRespDeSerTime()));
+      queryListJson.add(queryJSON);
+    }
+    responseJSON.put("queriesList", queryListJson);
 
-      // return jmx status
-      responseJSON.put("connectedFlag", cluster.isConnectedFlag());
-      responseJSON.put("connectedErrorMsg", cluster.getConnectionErrorMsg());
+    // return jmx status
+    responseJSON.put("connectedFlag", cluster.isConnectedFlag());
+    responseJSON.put("connectedErrorMsg", cluster.getConnectionErrorMsg());
 
-      // Send json response
-      return responseJSON;
+    // Send json response
+    return responseJSON;
 
-    } catch (JSONException e) {
-      throw new Exception(e);
-    }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java
index 4aa5560..47fd20d 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/SystemAlertsService.java
@@ -19,18 +19,18 @@
 
 package com.vmware.gemfire.tools.pulse.internal.service;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
+import com.vmware.gemfire.tools.pulse.internal.data.Repository;
+import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
-import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
-import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Class SystemAlertsService
@@ -47,37 +47,32 @@ import com.vmware.gemfire.tools.pulse.internal.util.StringUtils;
 @Scope("singleton")
 public class SystemAlertsService implements PulseService {
 
-  public JSONObject execute(final HttpServletRequest request) throws Exception {
+  private static final ObjectMapper mapper = new ObjectMapper();
+
+  public ObjectNode tempExecute(final HttpServletRequest request) throws Exception {
 
     // get cluster object
     Cluster cluster = Repository.get().getCluster();
 
     // json object to be sent as response
-    JSONObject responseJSON = new JSONObject();
-
-    try {
-      JSONObject requestDataJSON = new JSONObject(
-          request.getParameter("pulseData"));
-      int pageNumber = 1; // Default
-      String strPageNumber = requestDataJSON.getJSONObject("SystemAlerts")
-          .getString("pageNumber");
-      if (StringUtils.isNotNullNotEmptyNotWhiteSpace(strPageNumber)) {
-        try {
-          pageNumber = Integer.valueOf(strPageNumber);
-        } catch (NumberFormatException e) {
-        }
+    ObjectNode responseJSON = mapper.createObjectNode();
+
+    JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
+    int pageNumber = 1; // Default
+    String strPageNumber = requestDataJSON.get("SystemAlerts").get("pageNumber").textValue();
+    if (StringUtils.isNotNullNotEmptyNotWhiteSpace(strPageNumber)) {
+      try {
+        pageNumber = Integer.valueOf(strPageNumber);
+      } catch (NumberFormatException e) {
       }
-
-      // clucter's Members
-      responseJSON.put("systemAlerts", getAlertsJson(cluster, pageNumber));
-      responseJSON.put("pageNumber", cluster.getNotificationPageNumber());
-      responseJSON.put("connectedFlag", cluster.isConnectedFlag());
-      responseJSON.put("connectedErrorMsg", cluster.getConnectionErrorMsg());
-
-    } catch (JSONException e) {
-      throw new Exception(e);
     }
 
+    // cluster's Members
+    responseJSON.put("systemAlerts", getAlertsJson(cluster, pageNumber));
+    responseJSON.put("pageNumber", cluster.getNotificationPageNumber());
+    responseJSON.put("connectedFlag", cluster.isConnectedFlag());
+    responseJSON.put("connectedErrorMsg", cluster.getConnectionErrorMsg());
+
     // Send json response
     return responseJSON;
   }
@@ -89,23 +84,22 @@ public class SystemAlertsService implements PulseService {
    * @param cluster
    * @return JSONObject Array list
    */
-  public static JSONObject getAlertsJson(Cluster cluster, int pageNumber)
-      throws JSONException {
+  public static ObjectNode getAlertsJson(Cluster cluster, int pageNumber) {
     // getting list of all types of alerts
     Cluster.Alert[] alertsList = cluster.getAlertsList();
 
     // create alerts json
-    JSONObject alertsJsonObject = new JSONObject();
+    ObjectNode alertsJsonObject = mapper.createObjectNode();
 
     if ((alertsList != null) && (alertsList.length > 0)) {
-      JSONArray errorJsonArray = new JSONArray();
-      JSONArray severeJsonArray = new JSONArray();
-      JSONArray warningJsonArray = new JSONArray();
-      JSONArray infoJsonArray = new JSONArray();
+      ArrayNode errorJsonArray = mapper.createArrayNode();
+      ArrayNode severeJsonArray = mapper.createArrayNode();
+      ArrayNode warningJsonArray = mapper.createArrayNode();
+      ArrayNode infoJsonArray = mapper.createArrayNode();
 
       cluster.setNotificationPageNumber(pageNumber);
       for (Cluster.Alert alert : alertsList) {
-        JSONObject objAlertJson = new JSONObject();
+        ObjectNode objAlertJson = mapper.createObjectNode();
         objAlertJson.put("description", alert.getDescription());
         objAlertJson.put("memberName", alert.getMemberName());
         objAlertJson.put("severity", alert.getSeverity());
@@ -115,13 +109,13 @@ public class SystemAlertsService implements PulseService {
         objAlertJson.put("id", alert.getId());
 
         if (alert.getSeverity() == Cluster.Alert.SEVERE) {
-          severeJsonArray.put(objAlertJson);
+          severeJsonArray.add(objAlertJson);
         } else if (alert.getSeverity() == Cluster.Alert.ERROR) {
-          errorJsonArray.put(objAlertJson);
+          errorJsonArray.add(objAlertJson);
         } else if (alert.getSeverity() == Cluster.Alert.WARNING) {
-          warningJsonArray.put(objAlertJson);
+          warningJsonArray.add(objAlertJson);
         } else {
-          infoJsonArray.put(objAlertJson);
+          infoJsonArray.add(objAlertJson);
         }
       }
       alertsJsonObject.put("info", infoJsonArray);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
index c4f7a49..33e0a1c 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/controllers/PulseControllerJUnitTest.java
@@ -1,13 +1,15 @@
 package com.vmware.gemfire.tools.pulse.controllers;
 
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gemstone.gemfire.test.junit.categories.UnitTest;
 import com.vmware.gemfire.tools.pulse.internal.PulseAppListener;
+import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConfig;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import org.apache.commons.collections.buffer.CircularFifoBuffer;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -35,6 +37,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.UUID;
 
+import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.containsInAnyOrder;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -50,13 +53,13 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 /**
  * @author Jens Deppe
  */
-@Category(IntegrationTest.class)
+@Category(UnitTest.class)
 @PrepareForTest(Repository.class)
 @RunWith(PowerMockRunner.class)
 @PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration
 @ContextConfiguration("classpath*:mvc-dispatcher-servlet.xml")
-@PowerMockIgnore("*.IntegrationTest")
+@PowerMockIgnore("*.UnitTest")
 public class PulseControllerJUnitTest {
 
   @Autowired
@@ -79,6 +82,8 @@ public class PulseControllerJUnitTest {
   private static final String REGION_TYPE = "PARTITION";
   private static final String AEQ_LISTENER = "async-event-listener";
   private static final String CLIENT_NAME = "client-1";
+  private static final String PHYSICAL_HOST_NAME = "physical-host-1";
+  private static final String GEMFIRE_VERSION = "1.0.0";
 
   private static final Principal principal;
 
@@ -86,6 +91,8 @@ public class PulseControllerJUnitTest {
     principal = () -> PRINCIPAL_USER;
   }
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   @Before
   public void setup() throws Exception {
     this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
@@ -106,12 +113,14 @@ public class PulseControllerJUnitTest {
     region.setRegionOnMembers(new ArrayList<Cluster.RegionOnMember>() {{
       add(regionOnMember);
     }});
-    cluster.addClusterRegion("/mock-region", region);
+    cluster.addClusterRegion(REGION_PATH, region);
 
     Cluster.Member member = new Cluster.Member();
     member.setId(MEMBER_ID);
     member.setName(MEMBER_NAME);
     member.setUptime(1L);
+    member.setHost(PHYSICAL_HOST_NAME);
+    member.setGemfireVersion(GEMFIRE_VERSION);
 
     member.setMemberRegions(new HashMap<String, Cluster.Region>() {{
       put(REGION_NAME, region);
@@ -131,13 +140,35 @@ public class PulseControllerJUnitTest {
       put(CLIENT_NAME, client);
     }});
 
-    cluster.setMembersHMap(new HashMap() {{put(MEMBER_NAME, member);}});
+    cluster.setMembersHMap(new HashMap() {{
+      put(MEMBER_NAME, member);
+    }});
+    cluster.setPhysicalToMember(new HashMap() {{
+      put(PHYSICAL_HOST_NAME, new ArrayList() {{
+        add(member);
+      }});
+    }});
     cluster.setServerName(CLUSTER_NAME);
     cluster.setMemoryUsageTrend(new CircularFifoBuffer() {{
       add(1);
       add(2);
       add(3);
     }});
+    cluster.setWritePerSecTrend(new CircularFifoBuffer() {{
+      add(1);
+      add(2);
+      add(3);
+    }});
+    cluster.setThroughoutReadsTrend(new CircularFifoBuffer() {{
+      add(1);
+      add(2);
+      add(3);
+    }});
+    cluster.setThroughoutWritesTrend(new CircularFifoBuffer() {{
+      add(4);
+      add(5);
+      add(6);
+    }});
 
     Repository repo = Mockito.spy(Repository.class);
 
@@ -150,6 +181,13 @@ public class PulseControllerJUnitTest {
     File tempQueryLog = tempFolder.newFile("query_history.log");
     config.setQueryHistoryFileName(tempQueryLog.toString());
     doReturn(config).when(repo).getPulseConfig();
+
+    PulseController.pulseVersion.setPulseVersion("not empty");
+    PulseController.pulseVersion.setPulseBuildId("not empty");
+    PulseController.pulseVersion.setPulseBuildDate("not empty");
+    PulseController.pulseVersion.setPulseSourceDate("not empty");
+    PulseController.pulseVersion.setPulseSourceRevision("not empty");
+    PulseController.pulseVersion.setPulseSourceRepository("not empty");
   }
 
   @Test
@@ -160,7 +198,7 @@ public class PulseControllerJUnitTest {
         .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.ClusterDetails.userName").value(PRINCIPAL_USER))
-        .andExpect(jsonPath("$.ClusterDetails.totalHeap").value(0))
+        .andExpect(jsonPath("$.ClusterDetails.totalHeap").value(0D))
         .andExpect(jsonPath("$.ClusterDetails.clusterName").value(CLUSTER_NAME))
     ;
   }
@@ -172,10 +210,10 @@ public class PulseControllerJUnitTest {
         .principal(principal)
         .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
         .andExpect(status().isOk())
-        .andExpect(jsonPath("$.ClusterDiskThroughput.currentThroughputWrites").value(0))
-        .andExpect(jsonPath("$.ClusterDiskThroughput.throughputReads").isEmpty())
-        .andExpect(jsonPath("$.ClusterDiskThroughput.currentThroughputReads").value(0))
-        .andExpect(jsonPath("$.ClusterDiskThroughput.throughputWrites").isEmpty())
+        .andExpect(jsonPath("$.ClusterDiskThroughput.currentThroughputWrites").value(0D))
+        .andExpect(jsonPath("$.ClusterDiskThroughput.throughputReads", contains(1, 2, 3)))
+        .andExpect(jsonPath("$.ClusterDiskThroughput.currentThroughputReads").value(0D))
+        .andExpect(jsonPath("$.ClusterDiskThroughput.throughputWrites", contains(4, 5, 6)))
     ;
   }
 
@@ -200,7 +238,7 @@ public class PulseControllerJUnitTest {
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.ClusterKeyStatistics.readPerSecTrend").isEmpty())
         .andExpect(jsonPath("$.ClusterKeyStatistics.queriesPerSecTrend").isEmpty())
-        .andExpect(jsonPath("$.ClusterKeyStatistics.writePerSecTrend").isEmpty())
+        .andExpect(jsonPath("$.ClusterKeyStatistics.writePerSecTrend", contains(1, 2, 3)))
     ;
   }
 
@@ -212,7 +250,7 @@ public class PulseControllerJUnitTest {
         .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.ClusterMembers.members[0].serverGroups[0]").value("Default"))
-        .andExpect(jsonPath("$.ClusterMembers.members[0].cpuUsage").value(0))
+        .andExpect(jsonPath("$.ClusterMembers.members[0].cpuUsage").value(0D))
         .andExpect(jsonPath("$.ClusterMembers.members[0].clients").value(1))
         .andExpect(jsonPath("$.ClusterMembers.members[0].heapUsage").value(0))
         .andExpect(jsonPath("$.ClusterMembers.members[0].name").value(MEMBER_NAME))
@@ -233,9 +271,33 @@ public class PulseControllerJUnitTest {
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.ClusterMembersRGraph.memberCount").value(0))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.data").isEmpty())
-        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children").isEmpty())
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.name").value(0))
         .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.id").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].id").value(PHYSICAL_HOST_NAME))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].name").value(PHYSICAL_HOST_NAME))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.loadAvg").isEmpty())
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.sockets").isEmpty())
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.threads").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.cpuUsage").value(0D))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.memoryUsage").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.hostStatus").value("Normal"))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].data.$type").value("hostNormalNode"))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].id").value(MEMBER_ID))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].name").value(MEMBER_NAME))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.gemfireVersion").value(GEMFIRE_VERSION))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.memoryUsage").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.cpuUsage").value(0D))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.regions").value(1))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.host").value(PHYSICAL_HOST_NAME))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.port").value("-"))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.clients").value(1))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.gcPauses").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.numThreads").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.nodeType").value("memberNormalNode"))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.$type").value("memberNormalNode"))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.gatewaySender").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].data.gatewayReceiver").value(0))
+        .andExpect(jsonPath("$.ClusterMembersRGraph.clustor.children[0].children[0].children").isEmpty())
     ;
   }
 
@@ -263,7 +325,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterRegion.region[0].regionPath").value(REGION_PATH))
         .andExpect(jsonPath("$.ClusterRegion.region[0].diskReadsTrend").isEmpty())
         .andExpect(jsonPath("$.ClusterRegion.region[0].memoryUsage").value("0.0000"))
-        .andExpect(jsonPath("$.ClusterRegion.region[0].getsRate").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].getsRate").value(0D))
         .andExpect(jsonPath("$.ClusterRegion.region[0].wanEnabled").value(false))
         .andExpect(jsonPath("$.ClusterRegion.region[0].memberCount").value(1))
         .andExpect(jsonPath("$.ClusterRegion.region[0].isHDFSWriteOnly").value("NA"))
@@ -272,7 +334,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterRegion.region[0].emptyNodes").value(0))
         .andExpect(jsonPath("$.ClusterRegion.region[0].type").value(REGION_TYPE))
         .andExpect(jsonPath("$.ClusterRegion.region[0].isEnableOffHeapMemory").value("OFF"))
-        .andExpect(jsonPath("$.ClusterRegion.region[0].putsRate").value(0))
+        .andExpect(jsonPath("$.ClusterRegion.region[0].putsRate").value(0D))
         .andExpect(jsonPath("$.ClusterRegion.region[0].totalMemory").value(0))
         .andExpect(jsonPath("$.ClusterRegion.region[0].entryCount").value(0))
         .andExpect(jsonPath("$.ClusterRegion.region[0].compressionCodec").value("NA"))
@@ -297,7 +359,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterRegions.regions[0].regionPath").value(REGION_PATH))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].diskReadsTrend").isEmpty())
         .andExpect(jsonPath("$.ClusterRegions.regions[0].memoryUsage").value("0.0000"))
-        .andExpect(jsonPath("$.ClusterRegions.regions[0].getsRate").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].getsRate").value(0D))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].wanEnabled").value(false))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].memberCount").value(1))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].isHDFSWriteOnly").value("NA"))
@@ -306,7 +368,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterRegions.regions[0].emptyNodes").value(0))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].type").value(REGION_TYPE))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].isEnableOffHeapMemory").value("OFF"))
-        .andExpect(jsonPath("$.ClusterRegions.regions[0].putsRate").value(0))
+        .andExpect(jsonPath("$.ClusterRegions.regions[0].putsRate").value(0D))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].totalMemory").value(0))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].entryCount").value(0))
         .andExpect(jsonPath("$.ClusterRegions.regions[0].compressionCodec").value("NA"))
@@ -328,13 +390,13 @@ public class PulseControllerJUnitTest {
         .principal(principal)
         .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
         .andExpect(status().isOk())
-        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.lruEvictionRate").value(0))
-        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.getsRate").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.lruEvictionRate").value(0D))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.getsRate").value(0D))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.emptyNodes").value(0))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.type").value(REGION_TYPE))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.isEnableOffHeapMemory").value("OFF"))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.path").value(REGION_PATH))
-        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].cpuUsage").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].cpuUsage").value(0D))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].clients").value(1))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].heapUsage").value(0))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.members[0].name").value(MEMBER_NAME))
@@ -352,7 +414,7 @@ public class PulseControllerJUnitTest {
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.wanEnabled").value(false))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.memberCount").value(1))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.isHDFSWriteOnly").value("NA"))
-        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.putsRate").value(0))
+        .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.putsRate").value(0D))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.totalMemory").value(0))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.entryCount").value(0))
         .andExpect(jsonPath("$.ClusterSelectedRegion.selectedRegion.compressionCodec").value("NA"))
@@ -445,7 +507,7 @@ public class PulseControllerJUnitTest {
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.MemberDetails.name").value(MEMBER_NAME))
         .andExpect(jsonPath("$.MemberDetails.offHeapUsedSize").value(0))
-        .andExpect(jsonPath("$.MemberDetails.diskStorageUsed").value(0))
+        .andExpect(jsonPath("$.MemberDetails.diskStorageUsed").value(0D))
         .andExpect(jsonPath("$.MemberDetails.regionsCount").value(1))
         .andExpect(jsonPath("$.MemberDetails.clusterName").value(CLUSTER_NAME))
         .andExpect(jsonPath("$.MemberDetails.name").value(MEMBER_NAME))
@@ -468,8 +530,8 @@ public class PulseControllerJUnitTest {
         .andExpect(status().isOk())
         .andExpect(jsonPath("$.MemberDiskThroughput.throughputWritesTrend").isEmpty())
         .andExpect(jsonPath("$.MemberDiskThroughput.throughputReadsTrend").isEmpty())
-        .andExpect(jsonPath("$.MemberDiskThroughput.throughputWrites").value(0))
-        .andExpect(jsonPath("$.MemberDiskThroughput.throughputReads").value(0))
+        .andExpect(jsonPath("$.MemberDiskThroughput.throughputWrites").value(0D))
+        .andExpect(jsonPath("$.MemberDiskThroughput.throughputReads").value(0D))
     ;
   }
 
@@ -571,12 +633,12 @@ public class PulseControllerJUnitTest {
         .principal(principal)
         .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
         .andExpect(status().isOk())
-        .andExpect(jsonPath("$.PulseVersion.sourceDate").isNotEmpty())
-        .andExpect(jsonPath("$.PulseVersion.sourceRepository").isNotEmpty())
-        .andExpect(jsonPath("$.PulseVersion.pulseVersion").isNotEmpty())
-        .andExpect(jsonPath("$.PulseVersion.sourceRevision").isNotEmpty())
-        .andExpect(jsonPath("$.PulseVersion.buildId").isNotEmpty())
-        .andExpect(jsonPath("$.PulseVersion.buildDate").isNotEmpty())
+        .andExpect(jsonPath("$.PulseVersion.sourceDate").value("not empty"))
+        .andExpect(jsonPath("$.PulseVersion.sourceRepository").value("not empty"))
+        .andExpect(jsonPath("$.PulseVersion.pulseVersion").value("not empty"))
+        .andExpect(jsonPath("$.PulseVersion.sourceRevision").value("not empty"))
+        .andExpect(jsonPath("$.PulseVersion.buildId").value("not empty"))
+        .andExpect(jsonPath("$.PulseVersion.buildDate").value("not empty"))
     ;
   }
 
@@ -691,7 +753,7 @@ public class PulseControllerJUnitTest {
 
   @Test
   public void dataBrowserQuery() throws Exception {
-    doReturn(new JSONObject().put("foo", "bar")).when(cluster).executeQuery(anyString(), anyString(), anyInt());
+    doReturn(mapper.createObjectNode().put("foo", "bar")).when(cluster).executeQuery(anyString(), anyString(), anyInt());
 
     this.mockMvc.perform(get("/dataBrowserQuery")
         .param("query", "SELECT * FROM " + REGION_PATH)
@@ -712,7 +774,7 @@ public class PulseControllerJUnitTest {
         .principal(principal)
         .accept(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)))
         .andExpect(status().isOk())
-        .andExpect(jsonPath("$.queryHistory[0].queryText").value("SELECT * FROM " + REGION_PATH))
+        .andExpect(jsonPath("$.queryHistory[0].queryText").value("\"SELECT * FROM " + REGION_PATH + "\""))
     ;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java
index 0cd1d37..51cc279 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/testbed/PropMockDataUpdater.java
@@ -18,18 +18,8 @@
  */
 package com.vmware.gemfire.tools.pulse.testbed;
 
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Random;
-import java.util.ResourceBundle;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster.Alert;
 import com.vmware.gemfire.tools.pulse.internal.data.Cluster.Client;
@@ -40,13 +30,22 @@ import com.vmware.gemfire.tools.pulse.internal.data.Cluster.Region;
 import com.vmware.gemfire.tools.pulse.internal.data.IClusterUpdater;
 import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import com.vmware.gemfire.tools.pulse.internal.data.Repository;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONException;
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter;
 import com.vmware.gemfire.tools.pulse.testbed.GemFireDistributedSystem.Locator;
 import com.vmware.gemfire.tools.pulse.testbed.GemFireDistributedSystem.Peer;
 import com.vmware.gemfire.tools.pulse.testbed.GemFireDistributedSystem.Server;
 
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Random;
+import java.util.ResourceBundle;
 
 public class PropMockDataUpdater implements IClusterUpdater {
   private static final int MAX_HOSTS = 40;
@@ -61,6 +60,8 @@ public class PropMockDataUpdater implements IClusterUpdater {
   private TestBed testbed;
   private final String testbedFile = System.getProperty("pulse.propMockDataUpdaterFile");;
 
+  private final ObjectMapper mapper = new ObjectMapper();
+
   public PropMockDataUpdater(Cluster cluster) {
     this.cluster = cluster;
     try {
@@ -348,7 +349,6 @@ public class PropMockDataUpdater implements IClusterUpdater {
     gatewayReceiver.setStatus(true);
     gatewayReceiver.setBatchSize(Math.abs(r.nextInt(10)));
 
-
     int gatewaySenderCount = Math.abs(r.nextInt(10));
 
     List<GatewaySender> list = m.getGatewaySenderList();
@@ -357,7 +357,6 @@ public class PropMockDataUpdater implements IClusterUpdater {
       list.add(createGatewaySenderCount(r));
     }
 
-
     Map<String, List<Member>> physicalToMember = cluster.getPhysicalToMember();
 
     List<Cluster.Member> memberArrList = physicalToMember.get(m.getHost());
@@ -506,8 +505,7 @@ public class PropMockDataUpdater implements IClusterUpdater {
   }
 
   @Override
-  public JSONObject executeQuery(String queryText, String members, int limit)
-      throws JSONException {
+  public ObjectNode executeQuery(String queryText, String members, int limit) {
     // TODO for Sushant/Sachin - Add implementation for MockUpdater for Automation
     return null;
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6d3f5560/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/junit/BaseServiceTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/junit/BaseServiceTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/junit/BaseServiceTest.java
index 8de628c..b607978 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/junit/BaseServiceTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/junit/BaseServiceTest.java
@@ -18,18 +18,11 @@
  */
 package com.vmware.gemfire.tools.pulse.tests.junit;
 
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.net.URI;
-import java.util.List;
-import java.util.Properties;
-
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gemstone.gemfire.test.junit.categories.UITest;
-import com.gemstone.gemfire.test.junit.categories.UnitTest;
+import com.google.gson.JsonObject;
+import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpUriRequest;
@@ -39,11 +32,23 @@ import org.apache.http.impl.client.BasicCookieStore;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
-import org.junit.*;
-
-import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.URI;
+import java.util.List;
+import java.util.Properties;
+
 
 /**
  * Base class to be extended by other JUnit test classes. This class defines and automatically invokes test for testing server login-logout so no need to add
@@ -61,14 +66,14 @@ public abstract class BaseServiceTest {
 
   protected static Properties propsForJUnit = new Properties();
   protected static String strHost = null;
-    protected static String strPort = null;
-    protected static String LOGIN_URL;
-    protected static String LOGOUT_URL;
-    protected static String IS_AUTHENTICATED_USER_URL;
-    protected static String PULSE_UPDATE_URL;
-
-    protected static final String PULSE_UPDATE_PARAM = "pulseData";
-    protected static final String PULSE_UPDATE_1_VALUE = "{'ClusterSelectedRegion':{'regionFullPath':'/GlobalVilage_2/GlobalVilage_9'}}";
+  protected static String strPort = null;
+  protected static String LOGIN_URL;
+  protected static String LOGOUT_URL;
+  protected static String IS_AUTHENTICATED_USER_URL;
+  protected static String PULSE_UPDATE_URL;
+
+  protected static final String PULSE_UPDATE_PARAM = "pulseData";
+  protected static final String PULSE_UPDATE_1_VALUE = "{'ClusterSelectedRegion':{'regionFullPath':'/GlobalVilage_2/GlobalVilage_9'}}";
   protected static final String PULSE_UPDATE_2_VALUE = "{'ClusterSelectedRegion':{'regionFullPath':'/Rubbish'}}";
 
   protected static final String PULSE_UPDATE_3_VALUE = "{'ClusterSelectedRegionsMember':{'regionFullPath':'/GlobalVilage_2/GlobalVilage_9'}}";
@@ -78,25 +83,27 @@ public abstract class BaseServiceTest {
   protected static final String PULSE_UPDATE_6_VALUE = "{'MemberGatewayHub':{'memberName':'pnq-visitor2'}}";
   protected static CloseableHttpClient httpclient = null;
 
+  private final ObjectMapper mapper = new ObjectMapper();
 
-    @BeforeClass
-    public static void beforeClass() throws Exception{
-        InputStream stream = BaseServiceTest.class.getClassLoader().getResourceAsStream("pulse.properties");
-
-        try{
-            propsForJUnit.load(stream);
-        } catch(Exception exProps){
-            System.out.println("BaseServiceTest :: Error loading properties from pulse.properties in classpath");
-        }
-        strHost = propsForJUnit.getProperty("pulse.host");
-        strPort = propsForJUnit.getProperty("pulse.port");
-        System.out.println("BaseServiceTest :: Loaded properties from classpath. Checking properties for hostname. Hostname found = " + strHost);
-        LOGIN_URL =                 "http://" + strHost + ":" + strPort + "/pulse/j_spring_security_check";
-        LOGOUT_URL =                "http://" + strHost + ":" + strPort + "/pulse/clusterLogout";
-        IS_AUTHENTICATED_USER_URL = "http://" + strHost + ":" + strPort + "/pulse/authenticateUser";
-        PULSE_UPDATE_URL =          "http://" + strHost + ":" + strPort + "/pulse/pulseUpdate";
+  @BeforeClass
+  public static void beforeClass() throws Exception {
+    InputStream stream = BaseServiceTest.class.getClassLoader().getResourceAsStream("pulse.properties");
 
+    try {
+      propsForJUnit.load(stream);
+    } catch (Exception exProps) {
+      System.out.println("BaseServiceTest :: Error loading properties from pulse.properties in classpath");
     }
+    strHost = propsForJUnit.getProperty("pulse.host");
+    strPort = propsForJUnit.getProperty("pulse.port");
+    System.out.println(
+        "BaseServiceTest :: Loaded properties from classpath. Checking properties for hostname. Hostname found = " + strHost);
+    LOGIN_URL = "http://" + strHost + ":" + strPort + "/pulse/j_spring_security_check";
+    LOGOUT_URL = "http://" + strHost + ":" + strPort + "/pulse/clusterLogout";
+    IS_AUTHENTICATED_USER_URL = "http://" + strHost + ":" + strPort + "/pulse/authenticateUser";
+    PULSE_UPDATE_URL = "http://" + strHost + ":" + strPort + "/pulse/pulseUpdate";
+
+  }
   /**
   *
   * @author rbhandekar
@@ -232,8 +239,8 @@ public abstract class BaseServiceTest {
             System.out.println("BaseServiceTest :: JSON response returned : " + jsonResp);
             EntityUtils.consume(entity);
 
-            JSONObject jsonObj = new JSONObject(jsonResp);
-            boolean isUserLoggedIn = jsonObj.getBoolean("isUserLoggedIn");
+            JsonNode jsonObj = mapper.readTree(jsonResp);
+            boolean isUserLoggedIn = jsonObj.get("isUserLoggedIn").booleanValue();
             Assert.assertNotNull("BaseServiceTest :: Server returned null response in 'isUserLoggedIn'", isUserLoggedIn);
             Assert.assertTrue("BaseServiceTest :: User login failed for this username, password", (isUserLoggedIn == true));
           } finally {