Package org.lightfish.business.administration.boundary

Source Code of org.lightfish.business.administration.boundary.PollingResource

/*
*
*/
package org.lightfish.business.administration.boundary;

import java.util.Date;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import org.lightfish.business.configuration.boundary.Configurator;
import org.lightfish.business.servermonitoring.boundary.MonitoringAdmin;
import org.lightfish.business.servermonitoring.boundary.MonitoringController;

/**
*
* @author adam-bien.com
*/
@Path("polling")
@Stateless
public class PollingResource {

    public static final String INTERVAL = "interval";
    public static final String LOCATION = "location";

    @Inject
    MonitoringController controller;
    @Inject
    Configurator configurator;
    @Inject
    MonitoringAdmin admin;

    @POST
    public JsonObject startPolling(JsonObject pollingInfo) {
        JsonObjectBuilder objectBuilder = Json.createObjectBuilder();
        int interval = pollingInfo.getInt(INTERVAL);
        configurator.setValue(INTERVAL, interval);
        String location = pollingInfo.getString(LOCATION, "localhost:4848");
        configurator.setValue(LOCATION, location);
        controller.restart();
        return status();

    }

    @GET
    public JsonObject status() {
        JsonObjectBuilder objectBuilder = Json.createObjectBuilder();
        Date nextTimeout = controller.nextTimeout();
        String timeoutAsString = "-";
        if (nextTimeout != null) {
            timeoutAsString = nextTimeout.toString();
        }
        objectBuilder.add("nextTimeout", timeoutAsString).add(INTERVAL, configurator.getValue(INTERVAL));
        return objectBuilder.build();
    }

    @DELETE
    public void stopPolling() {
        controller.stopTimer();
    }
}
TOP

Related Classes of org.lightfish.business.administration.boundary.PollingResource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.