Use URLs for groovy template resources
This commit is contained in:
		
							parent
							
								
									e471759be8
								
							
						
					
					
						commit
						c8ca2495de
					
				| 
						 | 
				
			
			@ -36,6 +36,7 @@ import org.springframework.boot.autoconfigure.groovy.template.web.GroovyTemplate
 | 
			
		|||
import org.springframework.boot.autoconfigure.groovy.template.web.LocaleAwareTemplate;
 | 
			
		||||
import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
 | 
			
		||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
			
		||||
import org.springframework.context.ApplicationContext;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
import org.springframework.context.i18n.LocaleContextHolder;
 | 
			
		||||
| 
						 | 
				
			
			@ -70,7 +71,7 @@ public class GroovyTemplateAutoConfiguration {
 | 
			
		|||
	public static class GroovyWebConfiguration implements BeanClassLoaderAware {
 | 
			
		||||
 | 
			
		||||
		@Autowired
 | 
			
		||||
		private final ResourceLoader resourceLoader = new DefaultResourceLoader();
 | 
			
		||||
		private ApplicationContext resourceLoader;
 | 
			
		||||
 | 
			
		||||
		@Autowired
 | 
			
		||||
		private GroovyTemplateProperties properties;
 | 
			
		||||
| 
						 | 
				
			
			@ -95,11 +96,14 @@ public class GroovyTemplateAutoConfiguration {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		private ClassLoader createParentLoaderForTemplates() throws Exception {
 | 
			
		||||
			Resource resource = this.resourceLoader.getResource(this.properties
 | 
			
		||||
			Resource[] resources = this.resourceLoader.getResources(this.properties
 | 
			
		||||
					.getPrefix());
 | 
			
		||||
			if (resource.exists()) {
 | 
			
		||||
				return new URLClassLoader(new URL[] { resource.getURL() },
 | 
			
		||||
						this.classLoader);
 | 
			
		||||
			if (resources.length > 0) {
 | 
			
		||||
				URL[] urls = new URL[resources.length];
 | 
			
		||||
				for (int i = 0; i < resources.length; i++) {
 | 
			
		||||
					urls[i] = resources[i].getURL();
 | 
			
		||||
				}
 | 
			
		||||
				return new URLClassLoader(urls, this.classLoader);
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				return this.classLoader;
 | 
			
		||||
| 
						 | 
				
			
			@ -114,7 +118,6 @@ public class GroovyTemplateAutoConfiguration {
 | 
			
		|||
			resolver.setSuffix(this.properties.getSuffix());
 | 
			
		||||
			resolver.setCache(this.properties.isCache());
 | 
			
		||||
			resolver.setContentType(this.properties.getContentType());
 | 
			
		||||
			resolver.setCharSet(this.properties.getCharSet());
 | 
			
		||||
			resolver.setViewNames(this.properties.getViewNames());
 | 
			
		||||
			resolver.setTemplateEngine(engine);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,6 @@ import groovy.text.SimpleTemplateEngine;
 | 
			
		|||
import groovy.text.Template;
 | 
			
		||||
import groovy.text.TemplateEngine;
 | 
			
		||||
 | 
			
		||||
import java.io.InputStreamReader;
 | 
			
		||||
import java.util.Locale;
 | 
			
		||||
 | 
			
		||||
import org.springframework.beans.propertyeditors.LocaleEditor;
 | 
			
		||||
| 
						 | 
				
			
			@ -36,8 +35,6 @@ public class GroovyTemplateViewResolver extends UrlBasedViewResolver {
 | 
			
		|||
 | 
			
		||||
	private TemplateEngine engine = new SimpleTemplateEngine();
 | 
			
		||||
 | 
			
		||||
	private String charSet = "UTF-8";
 | 
			
		||||
 | 
			
		||||
	public GroovyTemplateViewResolver() {
 | 
			
		||||
		setViewClass(GroovyTemplateView.class);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -49,21 +46,13 @@ public class GroovyTemplateViewResolver extends UrlBasedViewResolver {
 | 
			
		|||
		this.engine = engine;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param charSet the charSet to set
 | 
			
		||||
	 */
 | 
			
		||||
	public void setCharSet(String charSet) {
 | 
			
		||||
		this.charSet = charSet;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected View loadView(String viewName, Locale locale) throws Exception {
 | 
			
		||||
		Resource resource = resolveResource(viewName, locale);
 | 
			
		||||
		if (resource == null) {
 | 
			
		||||
			return null;
 | 
			
		||||
		}
 | 
			
		||||
		Template template = this.engine.createTemplate(new InputStreamReader(resource
 | 
			
		||||
				.getInputStream(), this.charSet));
 | 
			
		||||
		Template template = this.engine.createTemplate(resource.getURL());
 | 
			
		||||
		GroovyTemplateView view = new GroovyTemplateView(template);
 | 
			
		||||
		view.setApplicationContext(getApplicationContext());
 | 
			
		||||
		view.setServletContext(getServletContext());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue