1 package org.codehaus.plexus.lifecycle;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.util.concurrent.ConcurrentHashMap;
20 import java.util.concurrent.ConcurrentMap;
21
22
23
24
25 public class DefaultLifecycleHandlerManager implements LifecycleHandlerManager {
26 private final ConcurrentMap<String, LifecycleHandler> lifecycleHandlers =
27 new ConcurrentHashMap<String, LifecycleHandler>();
28
29 private String defaultLifecycleHandlerId = "plexus";
30
31 public void addLifecycleHandler(LifecycleHandler lifecycleHandler) {
32 lifecycleHandlers.put(lifecycleHandler.getId(), lifecycleHandler);
33 }
34
35 public void initialize() {
36 for (LifecycleHandler lifecycleHandler : lifecycleHandlers.values()) {
37 lifecycleHandler.initialize();
38 }
39 }
40
41 public LifecycleHandler getLifecycleHandler(String id) throws UndefinedLifecycleHandlerException {
42 if (id == null) {
43 id = defaultLifecycleHandlerId;
44 }
45
46 LifecycleHandler lifecycleHandler = lifecycleHandlers.get(id);
47
48 if (lifecycleHandler == null) {
49 throw new UndefinedLifecycleHandlerException("Specified lifecycle handler cannot be found: " + id);
50 }
51
52 return lifecycleHandler;
53 }
54 }