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
|
* 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
|
* Declarative REST Client: Feign creates a dynamic implementation of an interface decorated with JAX-RS or Spring MVC annotations
|
||||||
* Client Side Load Balancer: Ribbon
|
* 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)
|
* 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,a nd a simple convention over configuration approach to reverse proxy creation
|
* Router and Filter: automatic regsitration of Zuul filters, and a simple convention over configuration approach to reverse proxy creation
|
||||||
|
|
||||||
== Building
|
== Building
|
||||||
|
|
||||||
|
|||||||
@@ -21,17 +21,42 @@ import org.apache.http.params.HttpConnectionParams;
|
|||||||
import org.apache.http.params.HttpParams;
|
import org.apache.http.params.HttpParams;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration;
|
||||||
import org.springframework.boot.context.embedded.ServletRegistrationBean;
|
import org.springframework.boot.context.embedded.ServletRegistrationBean;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.ui.freemarker.SpringTemplateLoader;
|
||||||
|
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Dave Syer
|
* @author Dave Syer
|
||||||
|
* @author Roy Clarkson
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@Configuration
|
@Configuration
|
||||||
public class HystrixDashboardConfiguration {
|
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
|
@Bean
|
||||||
public ServletRegistrationBean proxyStreamServlet() {
|
public ServletRegistrationBean proxyStreamServlet() {
|
||||||
return new ServletRegistrationBean(new ProxyStreamServlet(), "/proxy.stream");
|
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