001 package com.khubla.pragmatach.plugin.adminapp;
002
003 import java.lang.management.ManagementFactory;
004
005 import com.khubla.pragmatach.framework.annotation.Controller;
006 import com.khubla.pragmatach.framework.annotation.Route;
007 import com.khubla.pragmatach.framework.annotation.View;
008 import com.khubla.pragmatach.framework.api.PragmatachException;
009 import com.khubla.pragmatach.framework.api.Response;
010
011 /**
012 * @author tome
013 */
014 @Controller(name = "pragmatachShowServerController")
015 @View(view = "pragmatach/admin/server.html")
016 public class ShowServerController extends SecuredAdminController {
017 /**
018 * find the current process id
019 */
020 private static String findProcessId() throws PragmatachException {
021 try {
022 final String jvmName = ManagementFactory.getRuntimeMXBean().getName();
023 final int index = jvmName.indexOf('@');
024 if (index < 1) {
025 return null;
026 } else {
027 return Long.toString(Long.parseLong(jvmName.substring(0, index)));
028 }
029 } catch (final Exception e) {
030 throw new PragmatachException("Exception in getProcessId", e);
031 }
032 }
033
034 /**
035 * server info
036 */
037 private String serverinfo;
038 /**
039 * hostname
040 */
041 private String hostname;
042 /**
043 * process id
044 */
045 private String processId;
046
047 public String getHostname() {
048 return hostname;
049 }
050
051 public String getProcessId() {
052 return processId;
053 }
054
055 public String getServerinfo() {
056 return serverinfo;
057 }
058
059 @Route(uri = "/pragmatach/admin/server")
060 public Response render() throws PragmatachException {
061 serverinfo = getRequest().getHttpServletRequest().getSession().getServletContext().getServerInfo();
062 processId = findProcessId();
063 try {
064 hostname = java.net.InetAddress.getLocalHost().getHostName();
065 } catch (final Exception e) {
066 hostname = "";
067 }
068 return super.render();
069 }
070
071 public void setHostname(String hostname) {
072 this.hostname = hostname;
073 }
074
075 public void setProcessId(String processId) {
076 this.processId = processId;
077 }
078
079 public void setServerinfo(String serverinfo) {
080 this.serverinfo = serverinfo;
081 }
082 }