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.directory.modules.pdfproducerarchive.service.daemon;
35
36 import fr.paris.lutece.plugins.directory.modules.pdfproducer.service.DirectoryPDFProducerPlugin;
37 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.business.zipbasket.ZipBasket;
38 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.service.DirectoryManageZipBasketService;
39 import fr.paris.lutece.portal.service.daemon.Daemon;
40 import fr.paris.lutece.portal.service.plugin.Plugin;
41 import fr.paris.lutece.portal.service.plugin.PluginService;
42 import fr.paris.lutece.portal.service.spring.SpringContextService;
43 import fr.paris.lutece.portal.service.util.AppPropertiesService;
44
45 import org.apache.commons.lang.StringUtils;
46
47 import java.util.Calendar;
48 import java.util.GregorianCalendar;
49
50
51
52
53
54
55
56 public class ZipCleanerDaemon extends Daemon
57 {
58
59 private static final String BEAN_DIRECTOR_MANAGE_ZIP_BASKET_SERVICE = "directory-pdfproducer-archive.directoryManageZipBasketService";
60
61
62 private static final String PROPERTY_DAEMON_NB_EXPIRATION_DAYS = "daemon.zipCleaner.nbExpirationDays";
63
64
65 private DirectoryManageZipBasketService _manageZipBasketService = (DirectoryManageZipBasketService) SpringContextService.getPluginBean( DirectoryPDFProducerPlugin.PLUGIN_NAME,
66 BEAN_DIRECTOR_MANAGE_ZIP_BASKET_SERVICE );
67
68
69
70
71 public void run( )
72 {
73 StringBuilder sbLog = new StringBuilder( );
74 Plugin plugin = PluginService.getPlugin( DirectoryPDFProducerPlugin.PLUGIN_NAME );
75 int nExpirationDays = AppPropertiesService.getPropertyInt( PROPERTY_DAEMON_NB_EXPIRATION_DAYS, 7 );
76 Calendar calendar = new GregorianCalendar( );
77 calendar.add( Calendar.DATE, -nExpirationDays );
78
79 for ( ZipBasket zipBasket : _manageZipBasketService.loadZipBasketByDate( plugin, calendar.getTime( ) ) )
80 {
81 if ( zipBasket != null )
82 {
83 sbLog.append( "\n- Cleaning archive '" + zipBasket.getZipName( ) + " (ID : " + zipBasket.getIdZip( ) +
84 ")'" );
85 _manageZipBasketService.deleteZipBasket( plugin, zipBasket.getIdZip( ),
86 Integer.toString( zipBasket.getIdRecord( ) ), sbLog );
87 }
88 }
89
90 if ( StringUtils.isBlank( sbLog.toString( ) ) )
91 {
92 sbLog.append( "\nNo archive to clean" );
93 }
94
95 setLastRunLogs( sbLog.toString( ) );
96 }
97 }