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