public StreamsTaskCounterBroadcast deserialize()

in streams-monitoring/src/main/java/org/apache/streams/jackson/StreamsTaskCounterDeserializer.java [50:95]


  public StreamsTaskCounterBroadcast deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
    try {
      MBeanServer server = ManagementFactory.getPlatformMBeanServer();

      StreamsTaskCounterBroadcast streamsTaskCounterBroadcast = new StreamsTaskCounterBroadcast();
      JsonNode attributes = jsonParser.getCodec().readTree(jsonParser);

      ObjectName name = new ObjectName(attributes.get("canonicalName").asText());
      MBeanInfo info = server.getMBeanInfo(name);
      streamsTaskCounterBroadcast.setName(name.toString());

      for (MBeanAttributeInfo attribute : Arrays.asList(info.getAttributes())) {
        try {
          switch (attribute.getName()) {
            case "ErrorRate":
              streamsTaskCounterBroadcast.setErrorRate((double) server.getAttribute(name, attribute.getName()));
              break;
            case "NumEmitted":
              streamsTaskCounterBroadcast.setNumEmitted((long) server.getAttribute(name, attribute.getName()));
              break;
            case "NumReceived":
              streamsTaskCounterBroadcast.setNumReceived((long) server.getAttribute(name, attribute.getName()));
              break;
            case "NumUnhandledErrors":
              streamsTaskCounterBroadcast.setNumUnhandledErrors((long) server.getAttribute(name, attribute.getName()));
              break;
            case "AvgTime":
              streamsTaskCounterBroadcast.setAvgTime((double) server.getAttribute(name, attribute.getName()));
              break;
            case "MaxTime":
              streamsTaskCounterBroadcast.setMaxTime((long) server.getAttribute(name, attribute.getName()));
              break;
            default:
              break;
          }
        } catch (Exception ex) {
          LOGGER.error("Exception while trying to deserialize StreamsTaskCounterBroadcast object: {}", ex);
        }
      }

      return streamsTaskCounterBroadcast;
    } catch (Exception ex) {
      LOGGER.error("Exception while trying to deserialize StreamsTaskCounterBroadcast object: {}", ex);
      return null;
    }
  }