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<>();
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 @SuppressWarnings( "EmptyMethod" )
129 protected void handleError( RepositoryEvent event, RepositoryListener listener, RuntimeException error )
130 {
131
132 }
133
134 @Override
135 public void artifactDeployed( RepositoryEvent event )
136 {
137 for ( RepositoryListener listener : listeners )
138 {
139 try
140 {
141 listener.artifactDeployed( event );
142 }
143 catch ( RuntimeException e )
144 {
145 handleError( event, listener, e );
146 }
147 }
148 }
149
150 @Override
151 public void artifactDeploying( RepositoryEvent event )
152 {
153 for ( RepositoryListener listener : listeners )
154 {
155 try
156 {
157 listener.artifactDeploying( event );
158 }
159 catch ( RuntimeException e )
160 {
161 handleError( event, listener, e );
162 }
163 }
164 }
165
166 @Override
167 public void artifactDescriptorInvalid( RepositoryEvent event )
168 {
169 for ( RepositoryListener listener : listeners )
170 {
171 try
172 {
173 listener.artifactDescriptorInvalid( event );
174 }
175 catch ( RuntimeException e )
176 {
177 handleError( event, listener, e );
178 }
179 }
180 }
181
182 @Override
183 public void artifactDescriptorMissing( RepositoryEvent event )
184 {
185 for ( RepositoryListener listener : listeners )
186 {
187 try
188 {
189 listener.artifactDescriptorMissing( event );
190 }
191 catch ( RuntimeException e )
192 {
193 handleError( event, listener, e );
194 }
195 }
196 }
197
198 @Override
199 public void artifactDownloaded( RepositoryEvent event )
200 {
201 for ( RepositoryListener listener : listeners )
202 {
203 try
204 {
205 listener.artifactDownloaded( event );
206 }
207 catch ( RuntimeException e )
208 {
209 handleError( event, listener, e );
210 }
211 }
212 }
213
214 @Override
215 public void artifactDownloading( RepositoryEvent event )
216 {
217 for ( RepositoryListener listener : listeners )
218 {
219 try
220 {
221 listener.artifactDownloading( event );
222 }
223 catch ( RuntimeException e )
224 {
225 handleError( event, listener, e );
226 }
227 }
228 }
229
230 @Override
231 public void artifactInstalled( RepositoryEvent event )
232 {
233 for ( RepositoryListener listener : listeners )
234 {
235 try
236 {
237 listener.artifactInstalled( event );
238 }
239 catch ( RuntimeException e )
240 {
241 handleError( event, listener, e );
242 }
243 }
244 }
245
246 @Override
247 public void artifactInstalling( RepositoryEvent event )
248 {
249 for ( RepositoryListener listener : listeners )
250 {
251 try
252 {
253 listener.artifactInstalling( event );
254 }
255 catch ( RuntimeException e )
256 {
257 handleError( event, listener, e );
258 }
259 }
260 }
261
262 @Override
263 public void artifactResolved( RepositoryEvent event )
264 {
265 for ( RepositoryListener listener : listeners )
266 {
267 try
268 {
269 listener.artifactResolved( event );
270 }
271 catch ( RuntimeException e )
272 {
273 handleError( event, listener, e );
274 }
275 }
276 }
277
278 @Override
279 public void artifactResolving( RepositoryEvent event )
280 {
281 for ( RepositoryListener listener : listeners )
282 {
283 try
284 {
285 listener.artifactResolving( event );
286 }
287 catch ( RuntimeException e )
288 {
289 handleError( event, listener, e );
290 }
291 }
292 }
293
294 @Override
295 public void metadataDeployed( RepositoryEvent event )
296 {
297 for ( RepositoryListener listener : listeners )
298 {
299 try
300 {
301 listener.metadataDeployed( event );
302 }
303 catch ( RuntimeException e )
304 {
305 handleError( event, listener, e );
306 }
307 }
308 }
309
310 @Override
311 public void metadataDeploying( RepositoryEvent event )
312 {
313 for ( RepositoryListener listener : listeners )
314 {
315 try
316 {
317 listener.metadataDeploying( event );
318 }
319 catch ( RuntimeException e )
320 {
321 handleError( event, listener, e );
322 }
323 }
324 }
325
326 @Override
327 public void metadataDownloaded( RepositoryEvent event )
328 {
329 for ( RepositoryListener listener : listeners )
330 {
331 try
332 {
333 listener.metadataDownloaded( event );
334 }
335 catch ( RuntimeException e )
336 {
337 handleError( event, listener, e );
338 }
339 }
340 }
341
342 @Override
343 public void metadataDownloading( RepositoryEvent event )
344 {
345 for ( RepositoryListener listener : listeners )
346 {
347 try
348 {
349 listener.metadataDownloading( event );
350 }
351 catch ( RuntimeException e )
352 {
353 handleError( event, listener, e );
354 }
355 }
356 }
357
358 @Override
359 public void metadataInstalled( RepositoryEvent event )
360 {
361 for ( RepositoryListener listener : listeners )
362 {
363 try
364 {
365 listener.metadataInstalled( event );
366 }
367 catch ( RuntimeException e )
368 {
369 handleError( event, listener, e );
370 }
371 }
372 }
373
374 @Override
375 public void metadataInstalling( RepositoryEvent event )
376 {
377 for ( RepositoryListener listener : listeners )
378 {
379 try
380 {
381 listener.metadataInstalling( event );
382 }
383 catch ( RuntimeException e )
384 {
385 handleError( event, listener, e );
386 }
387 }
388 }
389
390 @Override
391 public void metadataInvalid( RepositoryEvent event )
392 {
393 for ( RepositoryListener listener : listeners )
394 {
395 try
396 {
397 listener.metadataInvalid( event );
398 }
399 catch ( RuntimeException e )
400 {
401 handleError( event, listener, e );
402 }
403 }
404 }
405
406 @Override
407 public void metadataResolved( RepositoryEvent event )
408 {
409 for ( RepositoryListener listener : listeners )
410 {
411 try
412 {
413 listener.metadataResolved( event );
414 }
415 catch ( RuntimeException e )
416 {
417 handleError( event, listener, e );
418 }
419 }
420 }
421
422 @Override
423 public void metadataResolving( RepositoryEvent event )
424 {
425 for ( RepositoryListener listener : listeners )
426 {
427 try
428 {
429 listener.metadataResolving( event );
430 }
431 catch ( RuntimeException e )
432 {
433 handleError( event, listener, e );
434 }
435 }
436 }
437
438 }