]> source.dussan.org Git - archiva.git/blob
2ed0f1b72f7780b23a2f54bfd28911ac3663705c
[archiva.git] /
1 package org.apache.maven.archiva.consumers;
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.maven.archiva.common.utils.BaseFile;
23 import org.apache.maven.archiva.model.ArchivaRepository;
24 import org.apache.maven.artifact.repository.ArtifactRepository;
25
26 import java.util.List;
27
28 /**
29  * DiscovererConsumer 
30  *
31  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
32  * @version $Id$
33  */
34 public interface Consumer
35 {
36     public static final String ROLE = Consumer.class.getName();
37
38     /**
39      * This is the human readable name for the discoverer.
40      * 
41      * @return the human readable discoverer name.
42      */
43     public String getName();
44     
45     /**
46      * This is used to initialize any internals in the consumer before it is used.
47      * 
48      * This method is called by the internals of archiva and is not meant to be used by other developers.
49      * This method is called once per repository.
50      * 
51      * @param repository the repository to initialize the consumer against.
52      * @return true if the repository is valid for this consumer. false will result in consumer being disabled 
53      *      for the provided repository.
54      */
55     public boolean init( ArchivaRepository repository );
56     
57     /**
58      * Get the List of excluded file patterns for this consumer.
59      * 
60      * @return the list of excluded file patterns for this consumer.
61      */
62     public List getExcludePatterns();
63     
64     /**
65      * Get the List of included file patterns for this consumer.
66      * 
67      * @return the list of included file patterns for this consumer.
68      */
69     public List getIncludePatterns();
70
71     /**
72      * Called by archiva framework to indicate that there is a file suitable for consuming, 
73      * This method will only be called if the {@link #init(ArtifactRepository)} and {@link #getExcludePatterns()}
74      * and {@link #getIncludePatterns()} all pass for this consumer.
75      * 
76      * @param file the file to process.
77      * @throws ConsumerException if there was a problem processing this file.
78      */
79     public void processFile( BaseFile file ) throws ConsumerException;
80     
81     /**
82      * Called by archiva framework to indicate that there has been a problem detected
83      * on a specific file.
84      * 
85      * NOTE: It is very possible for 1 file to have more than 1 problem associated with it.
86      * 
87      * @param file the file to process.
88      * @param message the message describing the problem.
89      */
90     public void processFileProblem( BaseFile file, String message );
91 }