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.importexport.service.export.daemon;
35
36 import fr.paris.lutece.portal.service.daemon.Daemon;
37 import fr.paris.lutece.portal.service.util.AppPathService;
38 import fr.paris.lutece.portal.service.util.AppPropertiesService;
39
40 import java.io.File;
41 import java.io.FileFilter;
42 import java.util.Date;
43
44 import org.apache.commons.io.filefilter.FileFilterUtils;
45
46
47
48
49 public class ExportCleanerDaemon extends Daemon
50 {
51 private static final String PLUGIN_IMPORTEXPORT_FOLDER = "plugins/importexport/";
52
53 private static final String PROPERTY_EXPORT_FILES_LIFE_TIME = "importexport.exportdata.exportFileLifeTime";
54
55 private static final long DEFAULT_EXPORT_FILES_LIFE_TIME = 7200000l;
56
57 private static final String CONSTANT_SLASH = "/";
58
59
60
61
62 @Override
63 public void run( )
64 {
65 File mainExportFolder = new File( AppPathService.getWebAppPath( ) + CONSTANT_SLASH + PLUGIN_IMPORTEXPORT_FOLDER );
66 long lExportFileLifeTime = AppPropertiesService.getPropertyLong( PROPERTY_EXPORT_FILES_LIFE_TIME, DEFAULT_EXPORT_FILES_LIFE_TIME );
67 long lDateThreshold = new Date( ).getTime( ) - lExportFileLifeTime;
68 int nFileRemoved = 0;
69 int nFileIgnored = 0;
70 if ( mainExportFolder.exists( ) )
71 {
72 for ( File userFolder : mainExportFolder.listFiles( (FileFilter) FileFilterUtils.directoryFileFilter( ) ) )
73 {
74 for ( File file : userFolder.listFiles( ) )
75 {
76 if ( file.lastModified( ) < lDateThreshold )
77 {
78 boolean bRes = file.delete( );
79 if ( bRes )
80 {
81 nFileRemoved++;
82 }
83 else
84 {
85 nFileIgnored++;
86 }
87 }
88 }
89 }
90 }
91 setLastRunLogs( nFileRemoved + " old export file(s) have been removed and " + nFileIgnored + " have been ignored" );
92 }
93
94 }