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.jpa.modules.hibernate.web;
35
36 import fr.paris.lutece.plugins.jpa.modules.hibernate.service.HibernateMonitorService;
37 import fr.paris.lutece.plugins.jpa.modules.hibernate.service.HibernateStatistics;
38 import fr.paris.lutece.plugins.jpa.modules.hibernate.util.HibernateConstants;
39 import fr.paris.lutece.portal.service.spring.SpringContextService;
40 import fr.paris.lutece.portal.service.template.AppTemplateService;
41 import fr.paris.lutece.portal.service.util.AppLogService;
42 import fr.paris.lutece.portal.service.util.AppPathService;
43 import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
44 import fr.paris.lutece.util.html.HtmlTemplate;
45
46 import org.apache.commons.lang.StringUtils;
47
48 import java.util.HashMap;
49 import java.util.List;
50 import java.util.Map;
51
52 import javax.servlet.http.HttpServletRequest;
53
54
55
56
57
58
59
60 public class HibernateMonitorJspBean extends PluginAdminPageJspBean
61 {
62 public static final String RIGHT_MONITOR_HIBERNATE = "HIBERNATE_MONITOR";
63
64
65 private static final String PARAMETER_POOL_NAME = "pool_name";
66
67
68 private static final String MARK_LIST_STATS = "list_stats";
69 private static final String MARK_JMX_STATE = "jmx_state";
70 private static final String MARK_STATS_STATE = "stats_state";
71
72
73 private static final String TEMPLATE_HIBERNATE_MONITOR = "admin/plugins/jpa/modules/hibernate/monitor_hibernate.html";
74
75
76 private static final String JSP_HIBERNATE_MONITOR = "jsp/admin/plugins/jpa/modules/hibernate/Monitor.jsp";
77
78
79
80
81
82 private HibernateMonitorService getHibernateMonitorService( )
83 {
84 return (HibernateMonitorService) SpringContextService.getBean( HibernateConstants.BEAN_HIBERNATE_MONITOR );
85 }
86
87
88
89
90
91
92 public String getHibernateMonitor( HttpServletRequest request )
93 {
94 HibernateMonitorService monitorService = getHibernateMonitorService( );
95
96 Map<String, Object> model = new HashMap<String, Object>( );
97
98 List<HibernateStatistics> listStats = monitorService.computeStatistics( );
99
100 model.put( MARK_LIST_STATS, listStats );
101 model.put( MARK_JMX_STATE, monitorService.isJMXEnabled( ) );
102 model.put( MARK_STATS_STATE, monitorService.isStatisticsEnabled( ) );
103
104 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_HIBERNATE_MONITOR, getUser( ).getLocale( ),
105 model );
106
107 return getAdminPage( template.getHtml( ) );
108 }
109
110
111
112
113
114
115 public String doActivateJMX( HttpServletRequest request )
116 {
117 HibernateMonitorService monitorService = getHibernateMonitorService( );
118
119 if ( !monitorService.doActivateJMXBeans( ) )
120 {
121 AppLogService.error( "Failed to activate hibernate JMX beans" );
122 }
123
124 return AppPathService.getBaseUrl( request ) + JSP_HIBERNATE_MONITOR;
125 }
126
127
128
129
130
131
132 public String doClearStatistics( HttpServletRequest request )
133 {
134 String strPoolName = request.getParameter( PARAMETER_POOL_NAME );
135
136 if ( StringUtils.isNotBlank( strPoolName ) )
137 {
138 HibernateMonitorService monitorService = getHibernateMonitorService( );
139 monitorService.doClearStatistics( strPoolName );
140 }
141
142 return AppPathService.getBaseUrl( request ) + JSP_HIBERNATE_MONITOR;
143 }
144
145
146
147
148
149
150 public String doEnableStatistics( HttpServletRequest request )
151 {
152 getHibernateMonitorService( ).doEnableStatistics( );
153
154 return AppPathService.getBaseUrl( request ) + JSP_HIBERNATE_MONITOR;
155 }
156
157
158
159
160
161
162 public String doDisableStatistics( HttpServletRequest request )
163 {
164 getHibernateMonitorService( ).doDisableStatistics( );
165
166 return AppPathService.getBaseUrl( request ) + JSP_HIBERNATE_MONITOR;
167 }
168 }