Package org.lightfish.business.servermonitoring.control

Source Code of org.lightfish.business.servermonitoring.control.OneShotProvider

package org.lightfish.business.servermonitoring.control;

import java.util.logging.Logger;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
import javax.json.JsonObject;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import org.lightfish.business.authenticator.GlassfishAuthenticator;
import org.lightfish.business.servermonitoring.entity.OneShot;

/**
* User: blog.adam-bien.com Date: 30.01.12 Time: 19:40
*/
public class OneShotProvider {

    @Inject
    protected Client client;
    @Inject
    Instance<String> location;
    @Inject
    Instance<String> username;
    @Inject
    Instance<String> password;
    @Inject
    Instance<GlassfishAuthenticator> authenticator;
    private WebTarget managementResource;

    private Logger LOG = Logger.getLogger(OneShotProvider.class.getName());

    String getVersion() {
        this.managementResource = this.client.target(getManagementURI());
        JsonObject result = getJsonObject("version");
        return result.getString("message");
    }

    String getUpTime() {
        this.managementResource = this.client.target(getManagementURI());
        JsonObject result = getJsonObject("uptime");
        return result.getString("message");
    }

    JsonObject getJsonObject(String name) {
        return this.managementResource.path(name).request(MediaType.APPLICATION_JSON).get(JsonObject.class);
    }

    String getManagementURI() {
        return getProtocol() + location.get() + "/management/domain/";
    }

    public OneShot fetchOneShot() {
        //TODO migrate authenticator
        //authenticator.get().addAuthenticator(client, username.get(), password.get());
        String version = null;
        String uptime = null;
        try {
            version = getVersion();
            uptime = getUpTime();
        } catch (Exception e) {
            throw new IllegalStateException("Cannot fetch static monitoring data because of: " + e);
        }
        return new OneShot.Builder().version(version).uptime(uptime).build();
    }

    private String getProtocol() {
        String protocol = "http://";
        if (username != null && username.get() != null && !username.get().isEmpty()) {
            protocol = "https://";
            LOG.info("User name is not empty, returning https");
        } else {
            LOG.info("Using " + protocol);
        }
        return protocol;
    }
}
TOP

Related Classes of org.lightfish.business.servermonitoring.control.OneShotProvider

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.