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
35 @Component( role = ArtifactHandlerManager.class )
36 public class DefaultArtifactHandlerManager
37 implements ArtifactHandlerManager
38 {
39
40 @Requirement( role = ArtifactHandler.class )
41 private Map<String, ArtifactHandler> artifactHandlers;
42
43 private Map<String, ArtifactHandler> unmanagedHandlers = new ConcurrentHashMap<String, ArtifactHandler>();
44
45 public ArtifactHandler getArtifactHandler( String type )
46 {
47 ArtifactHandler handler = unmanagedHandlers.get( type );
48
49 if ( handler == null )
50 {
51 handler = artifactHandlers.get( type );
52
53 if ( handler == null )
54 {
55 handler = new DefaultArtifactHandler( type );
56 }
57 }
58
59 return handler;
60 }
61
62 public void addHandlers( Map<String, ArtifactHandler> handlers )
63 {
64
65 unmanagedHandlers.putAll( handlers );
66 }
67
68 @Deprecated
69 public Set<String> getHandlerTypes()
70 {
71 return artifactHandlers.keySet();
72 }
73
74 }