1 package org.apache.archiva.repository.scanner.functors;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.archiva.admin.model.beans.ManagedRepository;
23 import org.apache.commons.collections.Closure;
24 import org.apache.archiva.consumers.ConsumerException;
25 import org.apache.archiva.consumers.RepositoryContentConsumer;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28
29 import java.util.Date;
30
31
32
33
34
35
36 public class TriggerBeginScanClosure
37 implements Closure
38 {
39 private Logger log = LoggerFactory.getLogger( TriggerBeginScanClosure.class );
40
41 private ManagedRepository repository;
42
43 private Date whenGathered;
44
45 private boolean executeOnEntireRepo = true;
46
47 public TriggerBeginScanClosure( ManagedRepository repository )
48 {
49 this.repository = repository;
50 }
51
52 public TriggerBeginScanClosure( ManagedRepository repository, Date whenGathered )
53 {
54 this( repository );
55 this.whenGathered = whenGathered;
56 }
57
58 public TriggerBeginScanClosure( ManagedRepository repository, Date whenGathered, boolean executeOnEntireRepo )
59 {
60 this( repository, whenGathered );
61 this.executeOnEntireRepo = executeOnEntireRepo;
62 }
63
64 @Override
65 public void execute( Object input )
66 {
67 if ( input instanceof RepositoryContentConsumer )
68 {
69 RepositoryContentConsumer consumer = (RepositoryContentConsumer) input;
70
71 try
72 {
73 consumer.beginScan( repository, whenGathered, executeOnEntireRepo );
74 }
75 catch ( ConsumerException e )
76 {
77 log.warn( "Consumer [{}] cannot begin: {}",consumer.getId(), e.getMessage(), e );
78 }
79 }
80 }
81 }