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.updater.web;
35
36 import fr.paris.lutece.plugins.updater.business.resource.FileSystemResource;
37 import fr.paris.lutece.plugins.updater.service.IUpdateService;
38 import fr.paris.lutece.plugins.updater.service.NewInfos;
39 import fr.paris.lutece.plugins.updater.service.PluginManagerService;
40 import fr.paris.lutece.plugins.updater.service.UpdateInfos;
41 import fr.paris.lutece.plugins.updater.service.UpdaterDownloadException;
42 import fr.paris.lutece.portal.service.message.AdminMessage;
43 import fr.paris.lutece.portal.service.message.AdminMessageService;
44 import fr.paris.lutece.portal.service.plugin.Plugin;
45 import fr.paris.lutece.portal.service.plugin.PluginService;
46 import fr.paris.lutece.portal.service.spring.SpringContextService;
47 import fr.paris.lutece.portal.service.template.AppTemplateService;
48 import fr.paris.lutece.portal.service.util.AppPathService;
49 import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
50 import fr.paris.lutece.util.html.HtmlTemplate;
51 import fr.paris.lutece.util.url.UrlItem;
52
53 import java.util.Collection;
54 import java.util.HashMap;
55 import java.util.List;
56
57 import javax.servlet.http.HttpServletRequest;
58
59
60
61
62
63 public class UpdaterJspBean extends PluginAdminPageJspBean
64 {
65 public static final String RIGHT_UPDATES_MANAGEMENT = "UPDATER_MANAGEMENT";
66
67
68 private static final String TEMPLATE_MANAGE_UPDATES = "admin/plugins/updater/manage_updates.html";
69 private static final String TEMPLATE_MANAGE_NEW = "admin/plugins/updater/manage_new.html";
70 private static final String TEMPLATE_MANAGE_INSTALLED = "admin/plugins/updater/manage_installed.html";
71
72
73 private static final String MARK_PLUGINS_LIST = "plugins_list";
74
75
76 private static final String PARAMETER_PLUGIN_NAME = "plugin_name";
77 private static final String PARAMETER_VERSION = "version";
78 private static final String PARAMETER_VERSION_FROM = "version_from";
79
80
81 private static final String JSP_URL_BACKUP_PLUGIN = "jsp/admin/plugins/updater/DoBackupPlugin.jsp";
82 private static final String JSP_URL_RESTORE_PLUGIN = "jsp/admin/plugins/updater/DoRestorePlugin.jsp";
83 private static final String JSP_URL_REMOVE_PLUGIN = "jsp/admin/plugins/updater/DoRemovePlugin.jsp";
84 private static final String JSP_URL_DEPLOY_PLUGIN = "jsp/admin/plugins/updater/DoDeployPlugin.jsp";
85 private static final String JSP_URL_CANCEL_INSTALL = "jsp/admin/plugins/updater/DoCancelInstall.jsp";
86 private static final String JSP_URL_MANAGE_UPDATES = "jsp/admin/plugins/updater/ManageUpdates.jsp";
87 private static final String JSP_URL_MANAGE_NEW = "jsp/admin/plugins/updater/ManageNew.jsp";
88 private static final String URL_MANAGE_UPDATES = "ManageUpdates.jsp";
89 private static final String URL_MANAGE_NEW = "ManageNew.jsp";
90 private static final String URL_MANAGE_INSTALLED = "ManageInstalled.jsp";
91
92
93 private static final String MESSAGE_CONFIRM_BACKUP_PLUGIN = "updater.message.confirmBackup";
94 private static final String MESSAGE_CONFIRM_RESTORE_PLUGIN = "updater.message.confirmRestore";
95 private static final String MESSAGE_CONFIRM_REMOVE_PLUGIN = "updater.message.confirmRemove";
96 private static final String MESSAGE_CONFIRM_DEPLOY_PLUGIN = "updater.message.confirmDeploy";
97 private static final String MESSAGE_CONFIRM_CANCEL_INSTALL = "updater.message.confirmCancelInstall";
98 private static final String MESSAGE_DOWNLOAD_ERROR = "updater.message.downloadError";
99 private static final String PLUGIN_NAME = "updater";
100 private static final String BEAN_UPDATE_SERVICE = "updater.updateService";
101 private static final String PROPERTY_PAGE_TITLE_MANAGE_UPDATES = "updater.pageTitle.manageUpdates";
102 private static final String PROPERTY_PAGE_TITLE_MANAGE_NEW = "updater.pageTitle.manageNew";
103 private static final String PROPERTY_PAGE_TITLE_MANAGE_INSTALLED = "updater.pageTitle.manageInstalled";
104 private static IUpdateService _updateService = (IUpdateService) SpringContextService.getPluginBean( PLUGIN_NAME,
105 BEAN_UPDATE_SERVICE );
106 private String _strManageUrl;
107
108
109
110
111
112
113 public String getManageUpdates( HttpServletRequest request )
114 {
115 setManageUrl( URL_MANAGE_UPDATES );
116 setPageTitleProperty( PROPERTY_PAGE_TITLE_MANAGE_UPDATES );
117
118
119 PluginManagerService.getInstance( ).setWebAppPath( AppPathService.getWebAppPath( ) );
120
121 Collection<Plugin> listPlugins = PluginService.getPluginList( );
122
123 List<UpdateInfos> listUpdates = _updateService.getUpdateInfos( listPlugins );
124
125 HashMap model = new HashMap( );
126 model.put( MARK_PLUGINS_LIST, listUpdates );
127
128 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_UPDATES, getLocale( ), model );
129
130 return getAdminPage( template.getHtml( ) );
131 }
132
133
134
135
136
137
138 public String getManageNew( HttpServletRequest request )
139 {
140 setManageUrl( URL_MANAGE_NEW );
141 setPageTitleProperty( PROPERTY_PAGE_TITLE_MANAGE_NEW );
142
143
144 PluginManagerService.getInstance( ).setWebAppPath( AppPathService.getWebAppPath( ) );
145
146 Collection<Plugin> listPlugins = PluginService.getPluginList( );
147
148 List<NewInfos> listNewPlugins = _updateService.getNewPluginsInfos( listPlugins );
149
150 HashMap model = new HashMap( );
151 model.put( MARK_PLUGINS_LIST, listNewPlugins );
152
153 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_NEW, getLocale( ), model );
154
155 return getAdminPage( template.getHtml( ) );
156 }
157
158
159
160
161
162
163 public String getManageInstalled( HttpServletRequest request )
164 {
165 setManageUrl( URL_MANAGE_INSTALLED );
166 setPageTitleProperty( PROPERTY_PAGE_TITLE_MANAGE_INSTALLED );
167
168
169 PluginManagerService.getInstance( ).setWebAppPath( AppPathService.getWebAppPath( ) );
170
171 Collection<Plugin> listPlugins = PluginService.getPluginList( );
172
173 HashMap model = new HashMap( );
174 model.put( MARK_PLUGINS_LIST, listPlugins );
175
176 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_INSTALLED, getLocale( ), model );
177
178 return getAdminPage( template.getHtml( ) );
179 }
180
181
182
183
184
185
186 public String backupPlugin( HttpServletRequest request )
187 {
188 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
189
190 UrlItem url = new UrlItem( JSP_URL_BACKUP_PLUGIN );
191 url.addParameter( PARAMETER_PLUGIN_NAME, strPluginName );
192
193 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_BACKUP_PLUGIN, url.getUrl( ),
194 AdminMessage.TYPE_CONFIRMATION );
195 }
196
197
198
199
200
201
202 public String doBackupPlugin( HttpServletRequest request )
203 {
204 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
205
206 PluginManagerService.getInstance( ).backupPlugin( strPluginName );
207
208 return getManageUrl( );
209 }
210
211
212
213
214
215
216 public String removePlugin( HttpServletRequest request )
217 {
218 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
219
220 UrlItem url = new UrlItem( JSP_URL_REMOVE_PLUGIN );
221 url.addParameter( PARAMETER_PLUGIN_NAME, strPluginName );
222
223 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_PLUGIN, url.getUrl( ),
224 AdminMessage.TYPE_CONFIRMATION );
225 }
226
227
228
229
230
231
232 public String doRemovePlugin( HttpServletRequest request )
233 {
234 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
235
236 PluginManagerService.getInstance( ).removePlugin( strPluginName, FileSystemResource.DELETE_NOW );
237
238 return getManageUrl( );
239 }
240
241
242
243
244
245
246 public String restorePlugin( HttpServletRequest request )
247 {
248 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
249
250 UrlItem url = new UrlItem( JSP_URL_RESTORE_PLUGIN );
251 url.addParameter( PARAMETER_PLUGIN_NAME, strPluginName );
252
253 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_RESTORE_PLUGIN, url.getUrl( ),
254 AdminMessage.TYPE_CONFIRMATION );
255 }
256
257
258
259
260
261
262 public String doRestorePlugin( HttpServletRequest request )
263 {
264 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
265
266 PluginManagerService.getInstance( ).restorePlugin( strPluginName );
267
268 return getManageUrl( );
269 }
270
271
272
273
274
275
276 public String deployPlugin( HttpServletRequest request )
277 {
278 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
279 String strVersion = request.getParameter( PARAMETER_VERSION );
280
281 UrlItem url = new UrlItem( JSP_URL_DEPLOY_PLUGIN );
282 url.addParameter( PARAMETER_PLUGIN_NAME, strPluginName );
283 url.addParameter( PARAMETER_VERSION, strVersion );
284
285 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_DEPLOY_PLUGIN, url.getUrl( ),
286 AdminMessage.TYPE_CONFIRMATION );
287 }
288
289
290
291
292
293
294 public String doDeployPlugin( HttpServletRequest request )
295 {
296 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
297 String strVersion = request.getParameter( PARAMETER_VERSION );
298 _updateService.deployPlugin( strPluginName, strVersion );
299
300 return getManageUrl( );
301 }
302
303
304
305
306
307
308 public String cancelInstall( HttpServletRequest request )
309 {
310 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
311
312 UrlItem url = new UrlItem( JSP_URL_CANCEL_INSTALL );
313 url.addParameter( PARAMETER_PLUGIN_NAME, strPluginName );
314
315 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_CANCEL_INSTALL, url.getUrl( ),
316 AdminMessage.TYPE_CONFIRMATION );
317 }
318
319
320
321
322
323
324 public String doCancelInstall( HttpServletRequest request )
325 {
326 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
327
328 PluginManagerService.getInstance( ).cancelInstallInProgress( strPluginName );
329
330 return getManageUrl( );
331 }
332
333
334
335
336
337
338 public String doDownload( HttpServletRequest request )
339 {
340 try
341 {
342 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
343 String strVersion = request.getParameter( PARAMETER_VERSION );
344 _updateService.downloadPlugin( strPluginName, strVersion );
345 PluginManagerService.getInstance( ).cancelInstallInProgress( strPluginName );
346
347 return getManageUrl( );
348 }
349 catch ( UpdaterDownloadException e )
350 {
351 Object[] args = { e.getCause( ).getMessage( ), };
352
353 String strForwardUrl = getManageUrl( ).equals( URL_MANAGE_UPDATES ) ? JSP_URL_MANAGE_UPDATES
354 : JSP_URL_MANAGE_NEW;
355
356 return AdminMessageService.getMessageUrl( request, MESSAGE_DOWNLOAD_ERROR, args, strForwardUrl,
357 AdminMessage.TYPE_ERROR );
358 }
359 }
360
361
362
363
364
365
366 public String doDownloadUpgrade( HttpServletRequest request )
367 {
368 try
369 {
370 String strPluginName = request.getParameter( PARAMETER_PLUGIN_NAME );
371 String strVersion = request.getParameter( PARAMETER_VERSION );
372 String strVersionFrom = request.getParameter( PARAMETER_VERSION_FROM );
373 _updateService.downloadPluginUpgrade( strPluginName, strVersion, strVersionFrom );
374 PluginManagerService.getInstance( ).cancelInstallInProgress( strPluginName );
375
376 return getManageUrl( );
377 }
378 catch ( UpdaterDownloadException e )
379 {
380 Object[] args = { e.getCause( ).getMessage( ), };
381
382 return AdminMessageService.getMessageUrl( request, MESSAGE_DOWNLOAD_ERROR, args, JSP_URL_MANAGE_UPDATES,
383 AdminMessage.TYPE_ERROR );
384 }
385 }
386
387
388
389
390
391 private void setManageUrl( String strManageUrl )
392 {
393 _strManageUrl = strManageUrl;
394 }
395
396
397
398
399
400 private String getManageUrl( )
401 {
402 return _strManageUrl;
403 }
404 }