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.workflow.modules.archive.service;
35
36 import java.util.Locale;
37
38 import javax.inject.Inject;
39 import javax.servlet.http.HttpServletRequest;
40
41 import fr.paris.lutece.plugins.workflow.modules.archive.business.ArchiveConfig;
42 import fr.paris.lutece.plugins.workflowcore.business.resource.ResourceHistory;
43 import fr.paris.lutece.plugins.workflowcore.business.resource.ResourceWorkflow;
44 import fr.paris.lutece.plugins.workflowcore.service.resource.IResourceHistoryService;
45 import fr.paris.lutece.plugins.workflowcore.service.task.SimpleTask;
46 import fr.paris.lutece.portal.service.daemon.AppDaemonService;
47 import fr.paris.lutece.portal.service.i18n.I18nService;
48 import fr.paris.lutece.portal.service.util.AppLogService;
49
50 public class TaskArchive extends SimpleTask
51 {
52 private static final String MESSAGE_TASK_TITLE = "module.workflow.archive.task.task_title";
53
54 @Inject
55 private IArchiveService _archiveService;
56
57 @Inject
58 private IResourceHistoryService _resourceHistoryService;
59
60 @Override
61 public void processTask( int nIdResourceHistory, HttpServletRequest request, Locale locale )
62 {
63 ResourceWorkflow resourceWorkflow = _archiveService.getResourceWorkflowByHistory( nIdResourceHistory );
64 ArchiveConfig config = _archiveService.loadConfig( this );
65 if ( config == null )
66 {
67 AppLogService.error( "No config for archive task: " + getId( ) );
68 return;
69 }
70
71 _archiveService.createArchiveResource( resourceWorkflow, config );
72
73 if ( _archiveService.isResourceUpForArchival( resourceWorkflow, config ) )
74 {
75 AppDaemonService.signalDaemon( "archiveDaemon" );
76 }
77 }
78
79 public void doArchiveResource( ResourceWorkflow resourceWorkflow, ArchiveConfig config )
80 {
81 if ( _archiveService.isResourceUpForArchival( resourceWorkflow, config ) )
82 {
83 _archiveService.archiveResource( resourceWorkflow, this, config );
84 }
85 }
86
87 @Override
88 public String getTitle( Locale locale )
89 {
90 return I18nService.getLocalizedString( MESSAGE_TASK_TITLE, locale );
91 }
92
93 @Override
94 public void doRemoveConfig( )
95 {
96 _archiveService.removeConfig( this );
97 }
98
99 @Override
100 public void doRemoveTaskInformation( int nIdHistory )
101 {
102 ResourceHistory history = _resourceHistoryService.findByPrimaryKey( nIdHistory );
103 _archiveService.removeArchiveResource( history.getIdResource( ), getId( ) );
104 }
105 }