1 package org.apache.maven.shared.io.location;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.net.URL;
23
24 import org.apache.maven.shared.io.logging.MessageHolder;
25
26 public class ClasspathResourceLocatorStrategy
27 implements LocatorStrategy
28 {
29
30 private String tempFilePrefix = "location.";
31
32 private String tempFileSuffix = ".cpurl";
33
34 private boolean tempFileDeleteOnExit = true;
35
36 public ClasspathResourceLocatorStrategy()
37 {
38 }
39
40 public ClasspathResourceLocatorStrategy( String tempFilePrefix, String tempFileSuffix, boolean tempFileDeleteOnExit )
41 {
42 this.tempFilePrefix = tempFilePrefix;
43 this.tempFileSuffix = tempFileSuffix;
44 this.tempFileDeleteOnExit = tempFileDeleteOnExit;
45 }
46
47 public Location resolve( String locationSpecification, MessageHolder messageHolder )
48 {
49 ClassLoader cloader = Thread.currentThread().getContextClassLoader();
50
51 URL resource = cloader.getResource( locationSpecification );
52
53 Location location = null;
54
55 if ( resource != null )
56 {
57 location = new URLLocation( resource, locationSpecification, tempFilePrefix, tempFileSuffix,
58 tempFileDeleteOnExit );
59 }
60 else
61 {
62 messageHolder.addMessage( "Failed to resolve classpath resource: " + locationSpecification
63 + " from classloader: " + cloader );
64 }
65
66 return location;
67 }
68
69 }