package io.cattle.platform.configitem.spring; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.springframework.beans.BeansException; import org.springframework.beans.factory.FactoryBean; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.io.Resource; public class URLArrayFactory implements FactoryBean<URL[]>, ApplicationContextAware { ApplicationContext applicationContext; String[] locations; @Override public URL[] getObject() throws Exception { List<URL> resources = new ArrayList<URL>(); for (String location : locations) { for (Resource resource : applicationContext.getResources(location)) { resources.add(resource.getURL()); } } return resources.toArray(new URL[resources.size()]); } @Override public Class<?> getObjectType() { return URL[].class; } @Override public boolean isSingleton() { return true; } public String[] getLocations() { return locations; } public void setLocations(String[] locations) { this.locations = locations; } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } }