package io.cattle.platform.spring.resource;
import io.cattle.platform.util.resource.ResourceLoader;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
public class SpringResourceLoader implements ResourceLoader, ApplicationContextAware {
private static final Logger log = LoggerFactory.getLogger(SpringResourceLoader.class);
public static final String PREFIX = "classpath*:";
PathMatchingResourcePatternResolver resolver;
@Override
public List<URL> getResources(String path) throws IOException {
List<URL> result = new ArrayList<URL>();
for (Resource r : resolver.getResources(PREFIX + path)) {
if (r.exists()) {
result.add(r.getURL());
} else {
log.debug("Skipping resource [{}]", r);
}
}
return result;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
resolver = new PathMatchingResourcePatternResolver(applicationContext);
}
public PathMatchingResourcePatternResolver getResolver() {
return resolver;
}
public void setResolver(PathMatchingResourcePatternResolver resolver) {
this.resolver = resolver;
}
}