001    package com.khubla.pragmatach.plugin.adminapp;
002    
003    import java.util.Enumeration;
004    import java.util.Hashtable;
005    import java.util.Properties;
006    
007    import com.khubla.pragmatach.framework.annotation.Controller;
008    import com.khubla.pragmatach.framework.annotation.Route;
009    import com.khubla.pragmatach.framework.annotation.View;
010    import com.khubla.pragmatach.framework.api.PragmatachException;
011    import com.khubla.pragmatach.framework.api.Response;
012    
013    /**
014     * @author tome
015     */
016    @Controller(name = "pragmatachShowJVMController")
017    @View(view = "pragmatach/admin/jvm.html")
018    public class ShowJVMController extends SecuredAdminController {
019       /**
020        * java properties
021        */
022       private Hashtable<String, String> javaProperties;
023    
024       private Hashtable<String, String> findJavaProperties() throws PragmatachException {
025          try {
026             final Hashtable<String, String> ret = new Hashtable<String, String>();
027             final Properties props = System.getProperties();
028             final Enumeration<Object> enumer = props.keys();
029             while (enumer.hasMoreElements()) {
030                final String key = (String) enumer.nextElement();
031                ret.put(key, props.getProperty(key));
032             }
033             return ret;
034          } catch (final Exception e) {
035             throw new PragmatachException("Exception in findJavaProperties", e);
036          }
037       }
038    
039       public Hashtable<String, String> getJavaProperties() {
040          return javaProperties;
041       }
042    
043       @Route(uri = "/pragmatach/admin/jvm")
044       public Response render() throws PragmatachException {
045          javaProperties = findJavaProperties();
046          return super.render();
047       }
048    
049       public void setJavaProperties(Hashtable<String, String> javaProperties) {
050          this.javaProperties = javaProperties;
051       }
052    }