1 package org.apache.maven.lifecycle;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.List;
23 import java.util.concurrent.CopyOnWriteArrayList;
24
25 import javax.inject.Named;
26 import javax.inject.Singleton;
27
28 import org.apache.maven.execution.MojoExecutionEvent;
29 import org.apache.maven.execution.MojoExecutionListener;
30 import org.apache.maven.plugin.MojoExecutionException;
31
32 @Named
33 @Singleton
34 public class DelegatingMojoExecutionListener
35 implements MojoExecutionListener
36 {
37 private final List<MojoExecutionListener> listeners = new CopyOnWriteArrayList<>();
38
39 public void beforeMojoExecution( MojoExecutionEvent event )
40 throws MojoExecutionException
41 {
42 for ( MojoExecutionListener listener : listeners )
43 {
44 listener.beforeMojoExecution( event );
45 }
46 }
47
48 public void afterMojoExecutionSuccess( MojoExecutionEvent event )
49 throws MojoExecutionException
50 {
51 for ( MojoExecutionListener listener : listeners )
52 {
53 listener.afterMojoExecutionSuccess( event );
54 }
55 }
56
57 public void afterExecutionFailure( MojoExecutionEvent event )
58 {
59 for ( MojoExecutionListener listener : listeners )
60 {
61 listener.afterExecutionFailure( event );
62 }
63 }
64
65 public void addMojoExecutionListener( MojoExecutionListener listener )
66 {
67 this.listeners.add( listener );
68 }
69
70 public void removeMojoExecutionListener( MojoExecutionListener listener )
71 {
72 this.listeners.remove( listener );
73 }
74
75 }