package com.airhacks.ping.boundary; import com.airhacks.ping.control.ServerWatch; import javax.inject.Inject; import javax.json.Json; import javax.json.JsonObject; import javax.json.JsonObjectBuilder; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; /** * * @author airhacks.com */ @Path("health") @Produces(MediaType.APPLICATION_JSON) public class HealthResource { @Inject ServerWatch watch; @GET @Path("/start-time") @Produces(MediaType.TEXT_PLAIN) public String bootTime() { return this.watch.getDateTime().toString(); } @GET @Path("/current-memory") public JsonObject availableHeap() { JsonObjectBuilder builder = Json.createObjectBuilder(); builder.add("Available memory in mb", this.watch.availableMemoryInMB()). add("Used memory in mb", this.watch.usedMemoryInMb()). add("Memory at start time", this.watch.usedMemoryInMbAtStartTime()); return builder.build(); } @GET @Path("/os-info") public JsonObject osInfo() { return this.watch.osInfo(); } }