1 package org.eclipse.aether.util.listener;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Arrays;
23 import java.util.Collection;
24 import java.util.List;
25 import java.util.concurrent.CopyOnWriteArrayList;
26
27 import org.eclipse.aether.AbstractRepositoryListener;
28 import org.eclipse.aether.RepositoryEvent;
29 import org.eclipse.aether.RepositoryListener;
30
31
32
33
34
35 public final class ChainedRepositoryListener
36 extends AbstractRepositoryListener
37 {
38
39 private final List<RepositoryListener> listeners = new CopyOnWriteArrayList<RepositoryListener>();
40
41
42
43
44
45
46
47
48
49
50 public static RepositoryListener newInstance( RepositoryListener listener1, RepositoryListener listener2 )
51 {
52 if ( listener1 == null )
53 {
54 return listener2;
55 }
56 else if ( listener2 == null )
57 {
58 return listener1;
59 }
60 return new ChainedRepositoryListener( listener1, listener2 );
61 }
62
63
64
65
66
67
68 public ChainedRepositoryListener( RepositoryListener... listeners )
69 {
70 if ( listeners != null )
71 {
72 add( Arrays.asList( listeners ) );
73 }
74 }
75
76
77
78
79
80
81 public ChainedRepositoryListener( Collection<? extends RepositoryListener> listeners )
82 {
83 add( listeners );
84 }
85
86
87
88
89
90
91 public void add( Collection<? extends RepositoryListener> listeners )
92 {
93 if ( listeners != null )
94 {
95 for ( RepositoryListener listener : listeners )
96 {
97 add( listener );
98 }
99 }
100 }
101
102
103
104
105
106
107 public void add( RepositoryListener listener )
108 {
109 if ( listener != null )
110 {
111 listeners.add( listener );
112 }
113 }
114
115
116
117
118
119
120 public void remove( RepositoryListener listener )
121 {
122 if ( listener != null )
123 {
124 listeners.remove( listener );
125 }
126 }
127
128 protected void handleError( RepositoryEvent event, RepositoryListener listener, RuntimeException error )
129 {
130
131 }
132
133 @Override
134 public void artifactDeployed( RepositoryEvent event )
135 {
136 for ( RepositoryListener listener : listeners )
137 {
138 try
139 {
140 listener.artifactDeployed( event );
141 }
142 catch ( RuntimeException e )
143 {
144 handleError( event, listener, e );
145 }
146 }
147 }
148
149 @Override
150 public void artifactDeploying( RepositoryEvent event )
151 {
152 for ( RepositoryListener listener : listeners )
153 {
154 try
155 {
156 listener.artifactDeploying( event );
157 }
158 catch ( RuntimeException e )
159 {
160 handleError( event, listener, e );
161 }
162 }
163 }
164
165 @Override
166 public void artifactDescriptorInvalid( RepositoryEvent event )
167 {
168 for ( RepositoryListener listener : listeners )
169 {
170 try
171 {
172 listener.artifactDescriptorInvalid( event );
173 }
174 catch ( RuntimeException e )
175 {
176 handleError( event, listener, e );
177 }
178 }
179 }
180
181 @Override
182 public void artifactDescriptorMissing( RepositoryEvent event )
183 {
184 for ( RepositoryListener listener : listeners )
185 {
186 try
187 {
188 listener.artifactDescriptorMissing( event );
189 }
190 catch ( RuntimeException e )
191 {
192 handleError( event, listener, e );
193 }
194 }
195 }
196
197 @Override
198 public void artifactDownloaded( RepositoryEvent event )
199 {
200 for ( RepositoryListener listener : listeners )
201 {
202 try
203 {
204 listener.artifactDownloaded( event );
205 }
206 catch ( RuntimeException e )
207 {
208 handleError( event, listener, e );
209 }
210 }
211 }
212
213 @Override
214 public void artifactDownloading( RepositoryEvent event )
215 {
216 for ( RepositoryListener listener : listeners )
217 {
218 try
219 {
220 listener.artifactDownloading( event );
221 }
222 catch ( RuntimeException e )
223 {
224 handleError( event, listener, e );
225 }
226 }
227 }
228
229 @Override
230 public void artifactInstalled( RepositoryEvent event )
231 {
232 for ( RepositoryListener listener : listeners )
233 {
234 try
235 {
236 listener.artifactInstalled( event );
237 }
238 catch ( RuntimeException e )
239 {
240 handleError( event, listener, e );
241 }
242 }
243 }
244
245 @Override
246 public void artifactInstalling( RepositoryEvent event )
247 {
248 for ( RepositoryListener listener : listeners )
249 {
250 try
251 {
252 listener.artifactInstalling( event );
253 }
254 catch ( RuntimeException e )
255 {
256 handleError( event, listener, e );
257 }
258 }
259 }
260
261 @Override
262 public void artifactResolved( RepositoryEvent event )
263 {
264 for ( RepositoryListener listener : listeners )
265 {
266 try
267 {
268 listener.artifactResolved( event );
269 }
270 catch ( RuntimeException e )
271 {
272 handleError( event, listener, e );
273 }
274 }
275 }
276
277 @Override
278 public void artifactResolving( RepositoryEvent event )
279 {
280 for ( RepositoryListener listener : listeners )
281 {
282 try
283 {
284 listener.artifactResolving( event );
285 }
286 catch ( RuntimeException e )
287 {
288 handleError( event, listener, e );
289 }
290 }
291 }
292
293 @Override
294 public void metadataDeployed( RepositoryEvent event )
295 {
296 for ( RepositoryListener listener : listeners )
297 {
298 try
299 {
300 listener.metadataDeployed( event );
301 }
302 catch ( RuntimeException e )
303 {
304 handleError( event, listener, e );
305 }
306 }
307 }
308
309 @Override
310 public void metadataDeploying( RepositoryEvent event )
311 {
312 for ( RepositoryListener listener : listeners )
313 {
314 try
315 {
316 listener.metadataDeploying( event );
317 }
318 catch ( RuntimeException e )
319 {
320 handleError( event, listener, e );
321 }
322 }
323 }
324
325 @Override
326 public void metadataDownloaded( RepositoryEvent event )
327 {
328 for ( RepositoryListener listener : listeners )
329 {
330 try
331 {
332 listener.metadataDownloaded( event );
333 }
334 catch ( RuntimeException e )
335 {
336 handleError( event, listener, e );
337 }
338 }
339 }
340
341 @Override
342 public void metadataDownloading( RepositoryEvent event )
343 {
344 for ( RepositoryListener listener : listeners )
345 {
346 try
347 {
348 listener.metadataDownloading( event );
349 }
350 catch ( RuntimeException e )
351 {
352 handleError( event, listener, e );
353 }
354 }
355 }
356
357 @Override
358 public void metadataInstalled( RepositoryEvent event )
359 {
360 for ( RepositoryListener listener : listeners )
361 {
362 try
363 {
364 listener.metadataInstalled( event );
365 }
366 catch ( RuntimeException e )
367 {
368 handleError( event, listener, e );
369 }
370 }
371 }
372
373 @Override
374 public void metadataInstalling( RepositoryEvent event )
375 {
376 for ( RepositoryListener listener : listeners )
377 {
378 try
379 {
380 listener.metadataInstalling( event );
381 }
382 catch ( RuntimeException e )
383 {
384 handleError( event, listener, e );
385 }
386 }
387 }
388
389 @Override
390 public void metadataInvalid( RepositoryEvent event )
391 {
392 for ( RepositoryListener listener : listeners )
393 {
394 try
395 {
396 listener.metadataInvalid( event );
397 }
398 catch ( RuntimeException e )
399 {
400 handleError( event, listener, e );
401 }
402 }
403 }
404
405 @Override
406 public void metadataResolved( RepositoryEvent event )
407 {
408 for ( RepositoryListener listener : listeners )
409 {
410 try
411 {
412 listener.metadataResolved( event );
413 }
414 catch ( RuntimeException e )
415 {
416 handleError( event, listener, e );
417 }
418 }
419 }
420
421 @Override
422 public void metadataResolving( RepositoryEvent event )
423 {
424 for ( RepositoryListener listener : listeners )
425 {
426 try
427 {
428 listener.metadataResolving( event );
429 }
430 catch ( RuntimeException e )
431 {
432 handleError( event, listener, e );
433 }
434 }
435 }
436
437 }