-
Eike Cochu authored
added maven buildnumber versioning added version properties file and reader updated info resource to return app information
Eike Cochu authoredadded maven buildnumber versioning added version properties file and reader updated info resource to return app information
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
InfoResource.java 1.71 KiB
package de.vipra.rest.resource;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import de.vipra.rest.model.Wrapper;
import de.vipra.util.BuildInfo;
import de.vipra.util.NestedMap;
import de.vipra.util.StringUtils;
@Path("info")
public class InfoResource {
@Context
UriInfo uri;
private static final NestedMap info = new NestedMap();
static {
try {
RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean();
Runtime rt = Runtime.getRuntime();
BuildInfo buildInfo = new BuildInfo();
// vm info
info.put("vm.starttime", rb.getStartTime());
info.put("vm.uptime", rb.getUptime());
info.put("vm.args", StringUtils.join(rb.getInputArguments()));
info.put("vm.java.vendor", System.getProperty("java.vendor"));
info.put("vm.java.version", System.getProperty("java.version"));
// host info
info.put("host.cores", rt.availableProcessors());
info.put("host.memory", rt.maxMemory());
info.put("host.os.name", System.getProperty("os.name"));
info.put("host.os.arch", System.getProperty("os.arch"));
info.put("host.os.version", System.getProperty("os.version"));
// app info
info.put("app.gitsha1", buildInfo.getGitSHA1());
info.put("app.version", buildInfo.getVersion());
info.put("app.builddate", buildInfo.getBuildDate());
} catch (Exception e) {
info.put("error", e.getMessage());
}
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getInfo() {
Wrapper<NestedMap> res = new Wrapper<>();
return res.ok(info);
}
}