com.seagate.kinetic.simulator.heartbeat.SampleHeartbeatListener.java Source code

Java tutorial

Introduction

Here is the source code for com.seagate.kinetic.simulator.heartbeat.SampleHeartbeatListener.java

Source

/**
 * Copyright 2013-2015 Seagate Technology LLC.
 *
 * This Source Code Form is subject to the terms of the Mozilla
 * Public License, v. 2.0. If a copy of the MPL was not
 * distributed with this file, You can obtain one at
 * https://mozilla.org/MP:/2.0/.
 * 
 * This program is distributed in the hope that it will be useful,
 * but is provided AS-IS, WITHOUT ANY WARRANTY; including without 
 * the implied warranty of MERCHANTABILITY, NON-INFRINGEMENT or 
 * FITNESS FOR A PARTICULAR PURPOSE. See the Mozilla Public 
 * License for more details.
 *
 * See www.openkinetic.org for more project information
 */
package com.seagate.kinetic.simulator.heartbeat;

import java.io.IOException;
import java.io.StringReader;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.stream.JsonReader;
import com.seagate.kinetic.heartbeat.HeartbeatMessage;
import com.seagate.kinetic.monitor.HeartbeatListener;

public class SampleHeartbeatListener extends HeartbeatListener {

    private final static Logger logger = Logger.getLogger(SampleHeartbeatListener.class.getName());

    public SampleHeartbeatListener() throws IOException {
        super();
    }

    @Override
    public void onMessage(byte[] data) {

        try {

            String message = new String(data, "UTF8");

            JsonReader reader = new JsonReader(new StringReader(message));
            reader.setLenient(true);

            // pretty print use this
            Gson gson = new GsonBuilder().setPrettyPrinting().create();

            // normal print, use this
            // Gson gson = new Gson();

            HeartbeatMessage hbm = gson.fromJson(reader, HeartbeatMessage.class);

            String jsonOutput = gson.toJson(hbm);

            logger.info("received heart beat: " + jsonOutput);

        } catch (Exception e) {
            logger.log(Level.WARNING, e.getMessage(), e);
        }

    }

    public static void main(String[] args) throws IOException {
        // heart beat listener
        @SuppressWarnings("unused")
        SampleHeartbeatListener listener = new SampleHeartbeatListener();
    }

}