package cloudone.internal.resources; import cloudone.C1Services; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import java.time.Duration; import java.util.concurrent.TimeUnit; /** * @author Martin Mares (martin.mares at oracle.com) */ @Path("/lifecycle") public class LifecycleResource { private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleResource.class); private C1Services getC1Services() { return C1Services.getInstance(); } @GET @Path("shutdown") @Produces("text/plain") public String shutDown() { getC1Services().getScheduledExecutorService().schedule(new Runnable() { @Override public void run() { getC1Services().getLifecycleService().shutdown(); } }, 1, TimeUnit.SECONDS); return "OK"; } @GET @Path("uptime") @Produces("text/plain") public Duration uptime() { return Duration.ofMillis(System.currentTimeMillis() - getC1Services().getRuntimeInfo().getCreatedTimestamp()); } }