1 package org.apache.archiva.scheduler.repository;
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.archiva.consumers.AbstractMonitoredConsumer;
24 import org.apache.archiva.consumers.ConsumerException;
25 import org.apache.archiva.consumers.KnownRepositoryContentConsumer;
26 import org.apache.archiva.model.ArtifactReference;
27 import org.apache.archiva.repository.ManagedRepositoryContent;
28 import org.apache.archiva.repository.RepositoryContentFactory;
29 import org.apache.archiva.repository.RepositoryException;
30 import org.apache.archiva.repository.layout.LayoutException;
31 import org.springframework.stereotype.Service;
32
33 import javax.inject.Inject;
34 import java.util.Collection;
35 import java.util.Collections;
36 import java.util.Date;
37 import java.util.HashSet;
38 import java.util.List;
39 import java.util.Set;
40
41 @Service( "knownRepositoryContentConsumer#test-consumer" )
42 public class TestConsumer
43 extends AbstractMonitoredConsumer
44 implements KnownRepositoryContentConsumer
45 {
46 private Set<ArtifactReference> consumed = new HashSet<ArtifactReference>();
47
48 @Inject
49 private RepositoryContentFactory factory;
50
51 private ManagedRepositoryContent repository;
52
53 @Override
54 public String getId()
55 {
56 return "test-consumer";
57 }
58
59 @Override
60 public String getDescription()
61 {
62 return null;
63 }
64
65 @Override
66 public List<String> getIncludes()
67 {
68 return Collections.singletonList( "**/**" );
69 }
70
71 @Override
72 public List<String> getExcludes()
73 {
74 return null;
75 }
76
77 @Override
78 public void beginScan( ManagedRepository repository, Date whenGathered )
79 throws ConsumerException
80 {
81 consumed.clear();
82
83 try
84 {
85 this.repository = factory.getManagedRepositoryContent( repository.getId() );
86 }
87 catch ( RepositoryException e )
88 {
89 throw new ConsumerException( e.getMessage(), e );
90 }
91 }
92
93 @Override
94 public void beginScan( ManagedRepository repository, Date whenGathered, boolean executeOnEntireRepo )
95 throws ConsumerException
96 {
97 beginScan( repository, whenGathered );
98 }
99
100 @Override
101 public void processFile( String path )
102 throws ConsumerException
103 {
104 if ( !path.endsWith( ".sha1" ) && !path.endsWith( ".md5" ) )
105 {
106 try
107 {
108 consumed.add( repository.toArtifactReference( path ) );
109 }
110 catch ( LayoutException e )
111 {
112 throw new ConsumerException( e.getMessage(), e );
113 }
114 }
115 }
116
117 @Override
118 public void processFile( String path, boolean executeOnEntireRepo )
119 throws Exception
120 {
121 processFile( path );
122 }
123
124 @Override
125 public void completeScan()
126 {
127 }
128
129 @Override
130 public void completeScan( boolean executeOnEntireRepo )
131 {
132 completeScan();
133 }
134
135 public Collection<ArtifactReference> getConsumed()
136 {
137 return consumed;
138 }
139 }