1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.artifact.handler.manager;
20
21 import java.util.Map;
22 import java.util.Set;
23 import java.util.concurrent.ConcurrentHashMap;
24 import javax.inject.Inject;
25 import javax.inject.Named;
26 import javax.inject.Singleton;
27 import org.apache.maven.artifact.handler.ArtifactHandler;
28 import org.apache.maven.artifact.handler.DefaultArtifactHandler;
29
30
31
32
33 @Named
34 @Singleton
35 public class DefaultArtifactHandlerManager implements ArtifactHandlerManager {
36
37 private final Map<String, ArtifactHandler> artifactHandlers;
38
39 private final Map<String, ArtifactHandler> allHandlers = new ConcurrentHashMap<>();
40
41 @Inject
42 public DefaultArtifactHandlerManager(Map<String, ArtifactHandler> artifactHandlers) {
43 this.artifactHandlers = artifactHandlers;
44 }
45
46 public ArtifactHandler getArtifactHandler(String type) {
47 ArtifactHandler handler = allHandlers.get(type);
48
49 if (handler == null) {
50 handler = artifactHandlers.get(type);
51
52 if (handler == null) {
53 handler = new DefaultArtifactHandler(type);
54 } else {
55 allHandlers.put(type, handler);
56 }
57 }
58
59 return handler;
60 }
61
62 public void addHandlers(Map<String, ArtifactHandler> handlers) {
63
64 allHandlers.putAll(handlers);
65 }
66
67 @Deprecated
68 public Set<String> getHandlerTypes() {
69 return artifactHandlers.keySet();
70 }
71 }