Merge branch 'royclarkson-freemarker-config'
This commit is contained in:
@@ -10,8 +10,8 @@ include::intro.adoc[]
|
||||
* Circuit Breaker: embedded Hystrix dashboard with declarative Java configuration
|
||||
* Declarative REST Client: Feign creates a dynamic implementation of an interface decorated with JAX-RS or Spring MVC annotations
|
||||
* Client Side Load Balancer: Ribbon
|
||||
* External Configuration: a bridge from the Sprnig Environment to Archaius (enabls native configuration of Netflix components using Spring Boot conventions)
|
||||
* Router and Filter: automatic regsitration of Zuul filters,a nd a simple convention over configuration approach to reverse proxy creation
|
||||
* External Configuration: a bridge from the Sprnig Environment to Archaius (enables native configuration of Netflix components using Spring Boot conventions)
|
||||
* Router and Filter: automatic regsitration of Zuul filters, and a simple convention over configuration approach to reverse proxy creation
|
||||
|
||||
== Building
|
||||
|
||||
|
||||
@@ -21,17 +21,42 @@ import org.apache.http.params.HttpConnectionParams;
|
||||
import org.apache.http.params.HttpParams;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration;
|
||||
import org.springframework.boot.context.embedded.ServletRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.ui.freemarker.SpringTemplateLoader;
|
||||
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
* @author Roy Clarkson
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
@Configuration
|
||||
public class HystrixDashboardConfiguration {
|
||||
|
||||
private static final String DEFAULT_TEMPLATE_LOADER_PATH = "classpath:/templates/";
|
||||
|
||||
private static final String DEFAULT_CHARSET = "UTF-8";
|
||||
|
||||
|
||||
/**
|
||||
* Overrides Spring Boot's {@link FreeMarkerAutoConfiguration} to prefer using a
|
||||
* {@link SpringTemplateLoader} instead of the file system. This corrects an issue
|
||||
* where Spring Boot may use an empty 'templates' file resource to resolve templates
|
||||
* instead of the packaged Hystrix classpath templates.
|
||||
* @return FreeMarker configuration
|
||||
*/
|
||||
@Bean
|
||||
public FreeMarkerConfigurer freeMarkerConfigurer() {
|
||||
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
|
||||
configurer.setTemplateLoaderPaths(DEFAULT_TEMPLATE_LOADER_PATH);
|
||||
configurer.setDefaultEncoding(DEFAULT_CHARSET);
|
||||
configurer.setPreferFileSystemAccess(false);
|
||||
return configurer;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ServletRegistrationBean proxyStreamServlet() {
|
||||
return new ServletRegistrationBean(new ProxyStreamServlet(), "/proxy.stream");
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
The presence of this templates directory tests the Spring Boot FreeMarker configuration
|
||||
Reference in New Issue
Block a user