]> source.dussan.org Git - archiva.git/blob
d478ea20bb8711abda19fcea285124004450e882
[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.codehaus.plexus.logging.AbstractLogEnabled;
23
24 import java.util.Arrays;
25 import java.util.HashSet;
26 import java.util.Iterator;
27 import java.util.List;
28 import java.util.Set;
29
30 /**
31  * AbstractMonitoredConsumer 
32  *
33  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
34  * @version $Id$
35  */
36 public abstract class AbstractMonitoredConsumer
37     extends AbstractLogEnabled
38     implements BaseConsumer
39 {
40     private Set<ConsumerMonitor> monitors = new HashSet<ConsumerMonitor>();
41
42     /**
43      * Default exclusions from artifact consumers that are using the file types. Note that this is simplistic in the
44      * case of the support files (based on extension) as it is elsewhere - it may be better to match these to actual
45      * artifacts and exclude later during scanning.
46      */
47     private static final List<String> DEFAULT_EXCLUSIONS = Arrays.asList( "**/maven-metadata.xml",
48                                                                           "**/maven-metadata-*.xml", "**/*.sha1",
49                                                                           "**/*.asc", "**/*.md5", "**/*.pgp" );
50
51     public void addConsumerMonitor( ConsumerMonitor monitor )
52     {
53         monitors.add( monitor );
54     }
55
56     public void removeConsumerMonitor( ConsumerMonitor monitor )
57     {
58         monitors.remove( monitor );
59     }
60
61     protected void triggerConsumerError( String type, String message )
62     {
63         for ( Iterator<ConsumerMonitor> itmonitors = monitors.iterator(); itmonitors.hasNext(); )
64         {
65             ConsumerMonitor monitor = itmonitors.next();
66             try
67             {
68                 monitor.consumerError( this, type, message );
69             }
70             catch ( Throwable t )
71             {
72                 /* discard error */
73             }
74         }
75     }
76
77     protected void triggerConsumerWarning( String type, String message )
78     {
79         for ( Iterator<ConsumerMonitor> itmonitors = monitors.iterator(); itmonitors.hasNext(); )
80         {
81             ConsumerMonitor monitor = itmonitors.next();
82             try
83             {
84                 monitor.consumerWarning( this, type, message );
85             }
86             catch ( Throwable t )
87             {
88                 /* discard error */
89             }
90         }
91     }
92
93     protected void triggerConsumerInfo( String message )
94     {
95         for ( Iterator<ConsumerMonitor> itmonitors = monitors.iterator(); itmonitors.hasNext(); )
96         {
97             ConsumerMonitor monitor = itmonitors.next();
98             try
99             {
100                 monitor.consumerInfo( this, message );
101             }
102             catch ( Throwable t )
103             {
104                 /* discard error */
105             }
106         }
107     }
108
109     public boolean isProcessUnmodified()
110     {
111         return false;
112     }
113
114     protected List<String> getDefaultArtifactExclusions()
115     {
116         return DEFAULT_EXCLUSIONS;
117     }
118 }