1 package org.apache.maven.plugin.surefire;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.ArrayList;
23 import java.util.Collection;
24 import java.util.Set;
25 import java.util.concurrent.ConcurrentHashMap;
26
27 import org.apache.maven.artifact.Artifact;
28 import org.apache.maven.surefire.booter.Classpath;
29
30 import javax.annotation.Nonnull;
31
32
33
34
35 public class ClasspathCache
36 {
37 private static final ConcurrentHashMap<String, Classpath> CLASSPATHS =
38 new ConcurrentHashMap<>( 4 );
39
40 public static Classpath getCachedClassPath( @Nonnull String artifactId )
41 {
42 return CLASSPATHS.get( artifactId );
43 }
44
45 public static void setCachedClasspath( @Nonnull String key, @Nonnull Classpath classpath )
46 {
47 CLASSPATHS.put( key, classpath );
48 }
49
50 public static Classpath setCachedClasspath( @Nonnull String key, @Nonnull Set<Artifact> artifacts )
51 {
52 Collection<String> files = new ArrayList<>();
53 for ( Artifact artifact : artifacts )
54 {
55 files.add( artifact.getFile().getAbsolutePath() );
56 }
57 Classpath classpath = new Classpath( files );
58 setCachedClasspath( key, classpath );
59 return classpath;
60 }
61 }