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.document.service.autoarchiving;
35
36 import fr.paris.lutece.plugins.document.business.Document;
37 import fr.paris.lutece.plugins.document.business.autopublication.DocumentAutoPublication;
38 import fr.paris.lutece.plugins.document.business.portlet.DocumentListPortletHome;
39 import fr.paris.lutece.plugins.document.business.workflow.DocumentState;
40 import fr.paris.lutece.plugins.document.service.DocumentException;
41 import fr.paris.lutece.plugins.document.service.DocumentService;
42 import fr.paris.lutece.plugins.document.service.publishing.PublishingService;
43 import fr.paris.lutece.portal.business.portlet.Portlet;
44 import fr.paris.lutece.portal.business.portlet.PortletHome;
45 import fr.paris.lutece.portal.service.util.AppLogService;
46
47
48
49
50
51
52 public class AutoArchivingService
53 {
54 private static AutoArchivingService _singleton;
55
56
57
58
59
60 public static AutoArchivingService getInstance( )
61 {
62 if ( _singleton == null )
63 {
64 _singleton = new AutoArchivingService( );
65 }
66
67 return _singleton;
68 }
69
70
71
72
73
74 public void init( )
75 {
76 DocumentAutoPublication.init( );
77 }
78
79
80
81
82
83 public String processAutoArchiving( )
84 {
85 StringBuffer sbLogs = new StringBuffer( );
86
87 sbLogs.append( "\r\n[Start] Starting Auto archiving daemon...\r\n" );
88
89 long lDuration = System.currentTimeMillis( );
90
91 for ( Portlet portlet : PortletHome.findByType( DocumentListPortletHome.getInstance( ).getPortletTypeId( ) ) )
92 {
93 for ( Document document : PublishingService.getInstance( )
94 .getPublishedDocumentsByPortletId( portlet.getId( ) ) )
95 {
96 if ( document.isOutOfDate( ) )
97 {
98 sbLogs.append( "\r\nArchiving Document " + document.getId( ) + " : '" + document.getTitle( ) +
99 "'...\r\n" );
100
101 try
102 {
103 DocumentService.getInstance( ).archiveDocument( document, null, DocumentState.STATE_ARCHIVED );
104 }
105 catch ( DocumentException e )
106 {
107 AppLogService.error( "[AutoArchivingDaemon] Error when archiving document (id:" +
108 document.getId( ) + "). " + e.getMessage( ) );
109 }
110 }
111 }
112 }
113
114 sbLogs.append( "\r\n[End] Duration : " + ( System.currentTimeMillis( ) - lDuration ) + " milliseconds\r\n" );
115
116 return sbLogs.toString( );
117 }
118 }