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.ProjectExecutionEvent;
29 import org.apache.maven.execution.ProjectExecutionListener;
30
31 @Named
32 @Singleton
33 public class DelegatingProjectExecutionListener
34 implements ProjectExecutionListener
35 {
36 private final List<ProjectExecutionListener> listeners = new CopyOnWriteArrayList<>();
37
38 public void beforeProjectExecution( ProjectExecutionEvent event )
39 throws LifecycleExecutionException
40 {
41 for ( ProjectExecutionListener listener : listeners )
42 {
43 listener.beforeProjectExecution( event );
44 }
45 }
46
47 public void beforeProjectLifecycleExecution( ProjectExecutionEvent event )
48 throws LifecycleExecutionException
49 {
50 for ( ProjectExecutionListener listener : listeners )
51 {
52 listener.beforeProjectLifecycleExecution( event );
53 }
54 }
55
56 public void afterProjectExecutionSuccess( ProjectExecutionEvent event )
57 throws LifecycleExecutionException
58 {
59 for ( ProjectExecutionListener listener : listeners )
60 {
61 listener.afterProjectExecutionSuccess( event );
62 }
63 }
64
65 public void afterProjectExecutionFailure( ProjectExecutionEvent event )
66 {
67 for ( ProjectExecutionListener listener : listeners )
68 {
69 listener.afterProjectExecutionFailure( event );
70 }
71 }
72
73 public void addProjectExecutionListener( ProjectExecutionListener listener )
74 {
75 this.listeners.add( listener );
76 }
77
78 public void removeProjectExecutionListener( ProjectExecutionListener listener )
79 {
80 this.listeners.remove( listener );
81 }
82 }