1 package org.apache.archiva.indexer.merger;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 import org.apache.archiva.common.plexusbridge.PlexusSisuBridge;
22 import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException;
23 import org.apache.maven.index.NexusIndexer;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26 import org.springframework.scheduling.annotation.Scheduled;
27 import org.springframework.stereotype.Service;
28
29 import javax.inject.Inject;
30 import java.util.Date;
31
32
33
34
35
36 @Service
37 public class TemporaryGroupIndexCleaner
38 {
39 private Logger log = LoggerFactory.getLogger( getClass() );
40
41 @Inject
42 private IndexMerger indexMerger;
43
44 private NexusIndexer indexer;
45
46 @Inject
47 public TemporaryGroupIndexCleaner( PlexusSisuBridge plexusSisuBridge )
48 throws PlexusSisuBridgeException
49 {
50 indexer = plexusSisuBridge.lookup( NexusIndexer.class );
51 }
52
53
54 @Scheduled(fixedDelay = 900000)
55 public void cleanTemporaryIndex()
56 {
57
58 for ( TemporaryGroupIndex temporaryGroupIndex : indexMerger.getTemporaryGroupIndexes() )
59 {
60
61 if ( new Date().getTime() - temporaryGroupIndex.getCreationTime() > temporaryGroupIndex.getMergedIndexTtl() )
62 {
63 log.info( "cleanTemporaryIndex for groupId {}", temporaryGroupIndex.getGroupId() );
64 indexMerger.cleanTemporaryGroupIndex( temporaryGroupIndex );
65
66 }
67 }
68 }
69 }