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