1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.checkstyle.resource;
20
21 import java.util.Map;
22
23 import org.codehaus.plexus.component.annotations.Component;
24 import org.codehaus.plexus.component.annotations.Requirement;
25 import org.codehaus.plexus.resource.DefaultResourceManager;
26 import org.codehaus.plexus.resource.PlexusResource;
27 import org.codehaus.plexus.resource.ResourceManager;
28 import org.codehaus.plexus.resource.loader.ResourceLoader;
29 import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
30 import org.codehaus.plexus.resource.loader.ThreadContextClasspathResourceLoader;
31
32
33
34
35
36
37 @Component(role = ResourceManager.class, hint = "license", instantiationStrategy = "per-lookup")
38 public class LicenseResourceManager extends DefaultResourceManager {
39
40 @Requirement(role = ResourceLoader.class)
41 private Map<String, ResourceLoader> resourceLoaders;
42
43 @Override
44 public void addSearchPath(String id, String path) {
45 ResourceLoader loader = resourceLoaders.get(id);
46
47 if (loader == null) {
48 throw new IllegalArgumentException("unknown resource loader: " + id);
49 }
50
51 loader.addSearchPath(path);
52 }
53
54 @Override
55 public PlexusResource getResource(String name) throws ResourceNotFoundException {
56 for (ResourceLoader resourceLoader : resourceLoaders.values()) {
57 if (resourceLoader instanceof ThreadContextClasspathResourceLoader
58 && !"config/maven-header.txt".equals(name)) {
59
60
61 continue;
62 }
63
64 try {
65 PlexusResource resource = resourceLoader.getResource(name);
66
67 getLogger().debug("The resource '" + name + "' was found as " + resource.getName() + ".");
68
69 return resource;
70 } catch (ResourceNotFoundException e) {
71 getLogger()
72 .debug("The resource '" + name + "' was not found with resourceLoader "
73 + resourceLoader.getClass().getName() + ".");
74 }
75 }
76
77 throw new ResourceNotFoundException(name);
78 }
79 }