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    }