1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.internal.impl;
20
21 import java.util.Collection;
22 import javax.inject.Inject;
23 import javax.inject.Named;
24 import javax.inject.Singleton;
25 import org.apache.maven.api.Event;
26 import org.apache.maven.api.Listener;
27 import org.apache.maven.eventspy.EventSpy;
28 import org.apache.maven.execution.ExecutionEvent;
29
30 @Named
31 @Singleton
32 public class EventSpyImpl implements EventSpy {
33
34 private DefaultSessionFactory sessionFactory;
35
36 @Inject
37 EventSpyImpl(DefaultSessionFactory sessionFactory) {
38 this.sessionFactory = sessionFactory;
39 }
40
41 @Override
42 public void init(Context context) throws Exception {}
43
44 @Override
45 public void onEvent(Object arg) throws Exception {
46 if (arg instanceof ExecutionEvent) {
47 ExecutionEvent ee = (ExecutionEvent) arg;
48 AbstractSession session = (AbstractSession) sessionFactory.getSession(ee.getSession());
49 Collection<Listener> listeners = session.getListeners();
50 if (!listeners.isEmpty()) {
51 Event event = new DefaultEvent(session, ee);
52 for (Listener listener : listeners) {
53 listener.onEvent(event);
54 }
55 }
56 }
57 }
58
59 @Override
60 public void close() throws Exception {}
61 }