Package org.lightfish.business.administration.boundary

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

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

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.Set;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.servlet.ServletContext;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import org.lightfish.business.servermonitoring.boundary.ServerInformation;
import org.lightfish.business.servermonitoring.entity.OneShot;

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

    @Inject
    ServerInformation information;

    @Context
    ServletContext sc;

    @GET
    public JsonObject info() {
        JsonObjectBuilder builder = Json.createObjectBuilder();
        OneShot info = this.information.fetch();
        String version = "--", uptime = "--";
        if (info != null) {
            version = info.getVersion();
        }
        builder.add("version", version);
        if (info != null) {
            uptime = info.getUptime();
        }
        builder.add("uptime", uptime);
        return builder.build();
    }

    @GET
    @Path("lightfish")
    public JsonObject lightfish() {
        JsonObjectBuilder builder = Json.createObjectBuilder();
        Properties properties = new Properties();
        InputStream is = this.sc.getResourceAsStream("/META-INF/maven/org.glassfish/lightfish/pom.properties");
        if (is != null) {
            try {
                properties.load(is);
            } catch (IOException ex) {
                throw new IllegalStateException("Cannot load properties: " + ex, ex);
            }
        }
        Set<Object> keySet = properties.keySet();
        for (Object object : keySet) {
            builder.add((String) object, (String) properties.get(object));
        }
        return builder.build();
    }
}
TOP

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

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.