@RequestMapping(value = "/pulseUpdate", method = RequestMethod.POST)
  public void getPulseUpdate(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    String pulseData = request.getParameter("pulseData");

    ObjectNode responseMap = mapper.createObjectNode();

    try {
      JsonNode requestMap = mapper.readTree(pulseData);
      Iterator<?> keys = requestMap.fieldNames();

      // Execute Services
      while (keys.hasNext()) {
        String serviceName = keys.next().toString();
        try {
          PulseService pulseService = pulseServiceFactory.getPulseServiceInstance(serviceName);
          responseMap.set(serviceName, pulseService.execute(request));
        } catch (OAuth2AuthenticationException | OAuth2AuthorizationException e) {
          logger.warn("serviceException [for service {}] = {}", serviceName, e.getMessage());
          response.setStatus(HttpStatus.UNAUTHORIZED.value());
          return;
        } catch (Exception serviceException) {
          logger.warn("serviceException [for service {}] = {}", serviceName,
              serviceException.getMessage());
          responseMap.put(serviceName, EMPTY_JSON);
        }
      }
    } catch (Exception e) {
      logger.debug("Exception Occurred : ", e);
    }

    // Create Response
    response.getOutputStream().write(responseMap.toString().getBytes());
  }
Class PulseController

This class contains the implementations for all http Ajax requests needs to be served in Pulse.

@since GemFire version 7.5
geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/controllers/PulseController.java