1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.systeminfo.web;
35
36 import fr.paris.lutece.portal.service.database.AppConnectionService;
37 import fr.paris.lutece.portal.service.datastore.CoreDataKeys;
38 import fr.paris.lutece.portal.service.datastore.DatastoreService;
39 import fr.paris.lutece.portal.service.template.AppTemplateService;
40 import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
41 import fr.paris.lutece.util.html.HtmlTemplate;
42
43 import java.nio.charset.Charset;
44 import java.util.HashMap;
45 import java.util.Properties;
46
47 import javax.servlet.ServletContext;
48 import javax.servlet.http.HttpServletRequest;
49
50 public class SystemInfoJspBean extends PluginAdminPageJspBean
51 {
52
53
54
55
56 public static final String RIGHT_SYSTEMINFO_MANAGEMENT = "SYSTEMINFO_MANAGEMENT";
57
58
59 private static final String MARK_JAVA_VERSION = "java_version";
60 private static final String MARK_JAVA_VENDOR = "java_vendor";
61 private static final String MARK_JAVA_VM_SPECIFICATION_VERSION = "java_vm_specification_version";
62 private static final String MARK_JAVA_VM_SPECIFICATION_VENDOR = "java_vm_specification_vendor";
63 private static final String MARK_JAVA_VM_SPECIFICATION_NAME = "java_vm_specification_name";
64 private static final String MARK_JAVA_VM_VERSION = "java_vm_version";
65 private static final String MARK_JAVA_VM_VENDOR = "java_vm_vendor";
66 private static final String MARK_JAVA_VM_NAME = "java_vm_name";
67 private static final String MARK_JAVA_VM_DEFAULT_CHARSET = "java_vm_default_charset";
68 private static final String MARK_JAVA_SPECIFICATION_VERSION = "java_specification_version";
69 private static final String MARK_JAVA_SPECIFICATION_VENDOR = "java_specification_vendor";
70 private static final String MARK_JAVA_SPECIFICATION_NAME = "java_specification_name";
71 private static final String MARK_OS_NAME = "os_name";
72 private static final String MARK_OS_VERSION = "os_version";
73 private static final String MARK_TOTAL_MEMORY = "runtime_totalMemory";
74 private static final String MARK_FREE_MEMORY = "runtime_freeMemory";
75 private static final String MARK_MAX_MEMORY = "runtime_maxMemory";
76 private static final String MARK_POOLS_INFOS = "pools_list";
77 private static final String MARK_STARTUP_DATE = "startup_date";
78 private static final String MARK_CONTAINER_INFO = "container_info";
79
80
81 private static final String PROPERTY_JAVA_VERSION = "java.version";
82 private static final String PROPERTY_JAVA_VENDOR = "java.vendor";
83 private static final String PROPERTY_JAVA_VM_SPECIFICATION_VERSION = "java.vm.specification.version";
84 private static final String PROPERTY_JAVA_VM_SPECIFICATION_VENDOR = "java.vm.specification.vendor";
85 private static final String PROPERTY_JAVA_VM_SPECIFICATION_NAME = "java.vm.specification.name";
86 private static final String PROPERTY_JAVA_VM_VERSION = "java.vm.version";
87 private static final String PROPERTY_JAVA_VM_VENDOR = "java.vm.vendor";
88 private static final String PROPERTY_JAVA_VM_NAME = "java.vm.name";
89 private static final String PROPERTY_JAVA_SPECIFICATION_VERSION = "java.specification.version";
90 private static final String PROPERTY_JAVA_SPECIFICATION_VENDOR = "java.specification.vendor";
91 private static final String PROPERTY_JAVA_SPECIFICATION_NAME = "java.specification.name";
92 private static final String PROPERTY_OS_NAME = "os.name";
93 private static final String PROPERTY_OS_VERSION = "os.version";
94
95
96 private static final String TEMPLATE_MANAGE_SYSTEMINFO = "admin/plugins/systeminfo/manage_systeminfo.html";
97
98
99
100
101
102
103
104
105
106
107 public String getSystemInfo( HttpServletRequest request, ServletContext application )
108 {
109 Properties properties = System.getProperties( );
110
111 HashMap model = new HashMap( );
112 model.put( MARK_JAVA_VERSION, properties.getProperty( PROPERTY_JAVA_VERSION ) );
113 model.put( MARK_JAVA_VENDOR, properties.getProperty( PROPERTY_JAVA_VENDOR ) );
114 model.put( MARK_JAVA_VM_SPECIFICATION_VERSION, properties.getProperty( PROPERTY_JAVA_VM_SPECIFICATION_VERSION ) );
115 model.put( MARK_JAVA_VM_SPECIFICATION_VENDOR, properties.getProperty( PROPERTY_JAVA_VM_SPECIFICATION_VENDOR ) );
116 model.put( MARK_JAVA_VM_SPECIFICATION_NAME, properties.getProperty( PROPERTY_JAVA_VM_SPECIFICATION_NAME ) );
117 model.put( MARK_JAVA_VM_VERSION, properties.getProperty( PROPERTY_JAVA_VM_VERSION ) );
118 model.put( MARK_JAVA_VM_VENDOR, properties.getProperty( PROPERTY_JAVA_VM_VENDOR ) );
119 model.put( MARK_JAVA_VM_NAME, properties.getProperty( PROPERTY_JAVA_VM_NAME ) );
120 model.put( MARK_JAVA_SPECIFICATION_VERSION, properties.getProperty( PROPERTY_JAVA_SPECIFICATION_VERSION ) );
121 model.put( MARK_JAVA_SPECIFICATION_VENDOR, properties.getProperty( PROPERTY_JAVA_SPECIFICATION_VENDOR ) );
122 model.put( MARK_JAVA_SPECIFICATION_NAME, properties.getProperty( PROPERTY_JAVA_SPECIFICATION_NAME ) );
123 model.put( MARK_OS_NAME, properties.getProperty( PROPERTY_OS_NAME ) );
124 model.put( MARK_OS_VERSION, properties.getProperty( PROPERTY_OS_VERSION ) );
125 model.put( MARK_TOTAL_MEMORY, Runtime.getRuntime( ).totalMemory( ) );
126 model.put( MARK_FREE_MEMORY, Runtime.getRuntime( ).freeMemory( ) );
127 model.put( MARK_MAX_MEMORY, Runtime.getRuntime( ).maxMemory( ) );
128
129 model.put( MARK_STARTUP_DATE, getStartupDate( ) );
130
131 model.put( MARK_POOLS_INFOS, AppConnectionService.getPoolManager( ).getPoolsInfos( ) );
132
133 model.put( MARK_JAVA_VM_DEFAULT_CHARSET, Charset.defaultCharset( ).toString( ) );
134
135 model.put( MARK_CONTAINER_INFO, application.getServerInfo( ) );
136
137 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_SYSTEMINFO, getLocale( ), model );
138
139 return getAdminPage( template.getHtml( ) );
140 }
141
142
143
144
145
146
147
148
149 public String doGarbageCollector( HttpServletRequest request )
150 {
151 System.gc( );
152
153 return getHomeUrl( request );
154 }
155
156
157
158
159
160
161 private String getStartupDate( )
162 {
163 return DatastoreService.getDataValue( CoreDataKeys.KEY_STARTUP_TIME, "" );
164 }
165 }