Skip to content

Commit f6d05ea

Browse files
committed
reintroduced two-arg constructor (making STS warning disappear); always use a ResourcePatternResolver (through ResourcePatternUtils)
1 parent 5105793 commit f6d05ea

File tree

1 file changed

+32
-26
lines changed

1 file changed

+32
-26
lines changed

org.springframework.jdbc/src/main/java/org/springframework/jdbc/config/SortedResourcesFactoryBean.java

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,14 @@
2828
import org.springframework.context.ResourceLoaderAware;
2929
import org.springframework.core.io.Resource;
3030
import org.springframework.core.io.ResourceLoader;
31+
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
3132
import org.springframework.core.io.support.ResourcePatternResolver;
33+
import org.springframework.core.io.support.ResourcePatternUtils;
3234

3335
/**
34-
* {@link FactoryBean} implementation that takes a list of location strings and creates a sorted array
35-
* of {@link Resource} instances.
36+
* {@link FactoryBean} implementation that takes a list of location Strings
37+
* and creates a sorted array of {@link Resource} instances.
38+
*
3639
* @author Dave Syer
3740
* @author Juergen Hoeller
3841
* @author Christian Dupuis
@@ -42,45 +45,48 @@ public class SortedResourcesFactoryBean extends AbstractFactoryBean<Resource[]>
4245

4346
private final List<String> locations;
4447

45-
private ResourceLoader resourceLoader;
48+
private ResourcePatternResolver resourcePatternResolver;
49+
4650

4751
public SortedResourcesFactoryBean(List<String> locations) {
4852
this.locations = locations;
49-
setSingleton(true);
53+
this.resourcePatternResolver = new PathMatchingResourcePatternResolver();
5054
}
5155

52-
@Override
53-
public Class<? extends Resource[]> getObjectType() {
54-
return Resource[].class;
56+
public SortedResourcesFactoryBean(ResourceLoader resourceLoader, List<String> locations) {
57+
this.locations = locations;
58+
this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader);
5559
}
5660

61+
5762
public void setResourceLoader(ResourceLoader resourceLoader) {
58-
this.resourceLoader = resourceLoader;
63+
this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader);
64+
}
65+
66+
67+
@Override
68+
public Class<? extends Resource[]> getObjectType() {
69+
return Resource[].class;
5970
}
6071

6172
@Override
6273
protected Resource[] createInstance() throws Exception {
6374
List<Resource> scripts = new ArrayList<Resource>();
64-
for (String location : locations) {
65-
if (resourceLoader instanceof ResourcePatternResolver) {
66-
List<Resource> resources = new ArrayList<Resource>(Arrays
67-
.asList(((ResourcePatternResolver) resourceLoader).getResources(location)));
68-
Collections.sort(resources, new Comparator<Resource>() {
69-
public int compare(Resource r1, Resource r2) {
70-
try {
71-
return r1.getURL().toString().compareTo(r2.getURL().toString());
72-
}
73-
catch (IOException ex) {
74-
return 0;
75-
}
75+
for (String location : this.locations) {
76+
List<Resource> resources = new ArrayList<Resource>(
77+
Arrays.asList(this.resourcePatternResolver.getResources(location)));
78+
Collections.sort(resources, new Comparator<Resource>() {
79+
public int compare(Resource r1, Resource r2) {
80+
try {
81+
return r1.getURL().toString().compareTo(r2.getURL().toString());
82+
}
83+
catch (IOException ex) {
84+
return 0;
7685
}
77-
});
78-
for (Resource resource : resources) {
79-
scripts.add(resource);
8086
}
81-
}
82-
else {
83-
scripts.add(resourceLoader.getResource(location));
87+
});
88+
for (Resource resource : resources) {
89+
scripts.add(resource);
8490
}
8591
}
8692
return scripts.toArray(new Resource[scripts.size()]);

0 commit comments

Comments
 (0)