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.portal.web.system;
35
36 import fr.paris.lutece.portal.service.daemon.AppDaemonService;
37 import fr.paris.lutece.portal.service.i18n.I18nService;
38 import fr.paris.lutece.portal.service.message.AdminMessage;
39 import fr.paris.lutece.portal.service.message.AdminMessageService;
40 import fr.paris.lutece.portal.service.template.AppTemplateService;
41 import fr.paris.lutece.portal.web.admin.AdminPageJspBean;
42 import fr.paris.lutece.util.html.HtmlTemplate;
43
44 import org.apache.commons.lang.StringUtils;
45
46 import java.util.HashMap;
47
48 import javax.servlet.http.HttpServletRequest;
49
50
51
52
53
54 public class DaemonsJspBean extends AdminPageJspBean
55 {
56 public static final String RIGHT_DAEMONS_MANAGEMENT = "CORE_DAEMONS_MANAGEMENT";
57 private static final long serialVersionUID = 3636973660388119199L;
58 private static final String TEMPLATE_MANAGE_DAEMONS = "admin/system/manage_daemons.html";
59 private static final String MARK_DAEMONS_LIST = "daemons_list";
60 private static final String PARAMETER_DAEMON = "daemon";
61 private static final String PARAMETER_ACTION = "action";
62 private static final String PARAMETER_INTERVAL = "interval";
63 private static final String ACTION_START = "START";
64 private static final String ACTION_STOP = "STOP";
65 private static final String ACTION_UPDATE_INTERVAL = "UPDATE_INTERVAL";
66 private static final String PROPERTY_FIELD_INTERVAL = "portal.system.manage_daemons.columnTitleInterval";
67 private static final String MESSAGE_MANDATORY_FIELD = "portal.util.message.mandatoryField";
68 private static final String MESSAGE_NUMERIC_FIELD = "portal.util.message.errorNumericField";
69
70
71
72
73
74
75 public String getManageDaemons( HttpServletRequest request )
76 {
77 HashMap<String, Object> model = new HashMap<String, Object>( );
78 model.put( MARK_DAEMONS_LIST, AppDaemonService.getDaemonEntries( ) );
79
80 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_DAEMONS, getLocale( ), model );
81
82 return getAdminPage( template.getHtml( ) );
83 }
84
85
86
87
88
89
90 public String doDaemonAction( HttpServletRequest request )
91 {
92 String strAction = request.getParameter( PARAMETER_ACTION );
93 String strDaemonKey = request.getParameter( PARAMETER_DAEMON );
94
95 if ( strAction.equalsIgnoreCase( ACTION_START ) )
96 {
97 AppDaemonService.startDaemon( strDaemonKey );
98 }
99 else if ( strAction.equalsIgnoreCase( ACTION_STOP ) )
100 {
101 AppDaemonService.stopDaemon( strDaemonKey );
102 }
103
104 else if ( strAction.equalsIgnoreCase( ACTION_UPDATE_INTERVAL ) )
105 {
106 String strErrorMessage = null;
107 String strDaemonInterval = request.getParameter( PARAMETER_INTERVAL );
108
109 Object[] tabFieldInterval = { I18nService.getLocalizedString( PROPERTY_FIELD_INTERVAL, getLocale( ) ) };
110
111 if ( StringUtils.isEmpty( strDaemonInterval ) )
112 {
113 strErrorMessage = MESSAGE_MANDATORY_FIELD;
114 }
115 else if ( !StringUtils.isNumeric( strDaemonInterval ) )
116 {
117 strErrorMessage = MESSAGE_NUMERIC_FIELD;
118 }
119
120 if ( strErrorMessage != null )
121 {
122 return AdminMessageService.getMessageUrl( request, strErrorMessage, tabFieldInterval,
123 AdminMessage.TYPE_STOP );
124 }
125
126 AppDaemonService.modifyDaemonInterval( strDaemonKey, strDaemonInterval );
127 }
128
129 return getHomeUrl( request );
130 }
131 }