]> source.dussan.org Git - archiva.git/blob
4240635371457fb129de9a81841754e5e7da3993
[archiva.git] /
1 package org.apache.archiva.scheduler.repository;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.archiva.consumers.AbstractMonitoredConsumer;
23 import org.apache.archiva.consumers.ConsumerException;
24 import org.apache.archiva.consumers.KnownRepositoryContentConsumer;
25 import org.apache.archiva.model.ArtifactReference;
26 import org.apache.archiva.repository.ManagedRepositoryContent;
27 import org.apache.archiva.repository.LayoutException;
28 import org.apache.archiva.repository.ManagedRepository;
29 import org.apache.archiva.repository.BaseRepositoryContentLayout;
30 import org.apache.archiva.repository.RepositoryContentFactory;
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         this.repository = repository.getContent();
84     }
85
86     @Override
87     public void beginScan( ManagedRepository repository, Date whenGathered, boolean executeOnEntireRepo )
88         throws ConsumerException
89     {
90         beginScan( repository, whenGathered );
91     }
92
93     @Override
94     public void processFile( String path )
95         throws ConsumerException
96     {
97         if ( !path.endsWith( ".sha1" ) && !path.endsWith( ".md5" ) )
98         {
99             try
100             {
101                 consumed.add( repository.getLayout( BaseRepositoryContentLayout.class ).toArtifactReference( path ) );
102             }
103             catch ( LayoutException e )
104             {
105                 throw new ConsumerException( e.getMessage(), e );
106             }
107         }
108     }
109
110     @Override
111     public void processFile( String path, boolean executeOnEntireRepo )
112         throws Exception
113     {
114         processFile( path );
115     }
116
117     @Override
118     public void completeScan()
119     {
120     }
121
122     @Override
123     public void completeScan( boolean executeOnEntireRepo )
124     {
125         completeScan();
126     }
127
128     public Collection<ArtifactReference> getConsumed()
129     {
130         return consumed;
131     }
132 }