Polish templates code

This commit is contained in:
Phillip Webb 2014-04-30 21:17:58 +01:00
parent 1d5cddc1e9
commit decee8d871
11 changed files with 43 additions and 33 deletions

View File

@ -44,8 +44,9 @@ import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
/**
* {@link EnableAutoConfiguration Auto-configuration} for FreeMarker.
*
*
* @author Andy Wilkinson
* @since 1.1.0
*/
@Configuration
@ConditionalOnClass(freemarker.template.Configuration.class)

View File

@ -22,11 +22,11 @@ import org.springframework.core.io.ResourceLoader;
import org.springframework.util.ClassUtils;
/**
* {@link TemplateAvailabilityProvider} that provides availability information
* for FreeMarker view templates
*
* {@link TemplateAvailabilityProvider} that provides availability information for
* FreeMarker view templates
*
* @author Andy Wilkinson
*
* @since 1.1.0
*/
public class FreeMarkerTemplateAvailabilityProvider implements
TemplateAvailabilityProvider {
@ -34,15 +34,16 @@ public class FreeMarkerTemplateAvailabilityProvider implements
@Override
public boolean isTemplateAvailable(String view, Environment environment,
ClassLoader classLoader, ResourceLoader resourceLoader) {
if (ClassUtils.isPresent("freemarker.template.Configuration",
classLoader)) {
String loaderPath = environment.getProperty("spring.freemarker.templateLoaderPath",
if (ClassUtils.isPresent("freemarker.template.Configuration", classLoader)) {
String loaderPath = environment.getProperty(
"spring.freemarker.templateLoaderPath",
FreeMarkerAutoConfiguration.DEFAULT_TEMPLATE_LOADER_PATH);
String prefix = environment.getProperty("spring.freemarker.prefix",
FreeMarkerAutoConfiguration.DEFAULT_PREFIX);
String suffix = environment.getProperty("spring.freemarker.suffix",
FreeMarkerAutoConfiguration.DEFAULT_SUFFIX);
return resourceLoader.getResource(loaderPath + prefix + view + suffix).exists();
return resourceLoader.getResource(loaderPath + prefix + view + suffix)
.exists();
}
return false;
}

View File

@ -24,9 +24,9 @@ import org.springframework.util.ClassUtils;
/**
* {@link TemplateAvailabilityProvider} that provides availability information for
* Thymeleaf view templates
*
*
* @author Andy Wilkinson
*
* @since 1.1.0
*/
public class ThymeleafTemplateAvailabilityProvider implements
TemplateAvailabilityProvider {

View File

@ -58,7 +58,7 @@ import org.springframework.web.servlet.view.BeanNameViewResolver;
/**
* {@link EnableAutoConfiguration Auto-configuration} to render errors via a MVC error
* controller.
*
*
* @author Dave Syer
* @author Andy Wilkinson
*/

View File

@ -21,6 +21,13 @@ import org.springframework.core.env.Environment;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.ClassUtils;
/**
* {@link TemplateAvailabilityProvider} that provides availability information for JSP
* view templates
*
* @author Andy Wilkinson
* @since 1.1.0
*/
public class JspTemplateAvailabilityProvider implements TemplateAvailabilityProvider {
@Override

View File

@ -41,7 +41,7 @@ import static org.junit.Assert.assertTrue;
/**
* Tests for {@link FreeMarkerAutoConfiguration}.
*
*
* @author Andy Wilkinson
*/
public class FreeMarkerAutoConfigurationTests {
@ -85,8 +85,8 @@ public class FreeMarkerAutoConfigurationTests {
new File("target/test-classes/templates/empty-directory").mkdir();
EnvironmentTestUtils
.addEnvironment(this.context,
"spring.freemarker.templateLoaderPath:classpath:/templates/empty-directory/");
.addEnvironment(this.context,
"spring.freemarker.templateLoaderPath:classpath:/templates/empty-directory/");
this.context.register(FreeMarkerAutoConfiguration.class);
this.context.refresh();

View File

@ -27,7 +27,7 @@ import static org.junit.Assert.assertTrue;
/**
* Tests for {@link FreeMarkerTemplateAvailabilityProvider}.
*
*
* @author Andy Wilkinson
*/
public class FreeMarkerTemplateAvailabilityProviderTests {

View File

@ -27,7 +27,7 @@ import static org.junit.Assert.assertTrue;
/**
* Tests for {@link ThymeleafTemplateAvailabilityProvider}.
*
*
* @author Andy Wilkinson
*/
public class ThymeleafTemplateAvailabilityProviderTests {

View File

@ -37,18 +37,18 @@ public class SampleController {
@Autowired
private HelloWorldService helloWorldService;
@RequestMapping(value="/", method=RequestMethod.GET)
@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseBody
public Map<String, String> hello() {
return Collections.singletonMap("message",
this.helloWorldService.getHelloMessage());
}
@RequestMapping(value="/", method=RequestMethod.POST)
@RequestMapping(value = "/", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> olleh(@Validated Message message) {
Map<String, Object> model = new LinkedHashMap<String, Object>();
model .put("message", message.getValue());
model.put("message", message.getValue());
model.put("title", "Hello Home");
model.put("date", new Date());
return model;
@ -59,14 +59,14 @@ public class SampleController {
public String foo() {
throw new IllegalArgumentException("Server error");
}
protected static class Message {
@NotBlank(message="Message value cannot be empty")
@NotBlank(message = "Message value cannot be empty")
private String value;
public String getValue() {
return value;
return this.value;
}
public void setValue(String value) {
@ -74,5 +74,4 @@ public class SampleController {
}
}
}

View File

@ -28,9 +28,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
* The GemstoneAppConfiguration class for allowing Spring Boot to pickup additional
* application Spring configuration meta-data for GemFire, which must be specified in
* Spring Data GemFire's XML namespace.
* <p/>
*
* @author John Blum
* @since 1.1.0
*/
@Configuration
@ImportResource("/spring-data-gemfire-cache.xml")

View File

@ -20,17 +20,20 @@ import org.springframework.core.env.Environment;
import org.springframework.core.io.ResourceLoader;
/**
* A {@code TemplateAvailabilityProvider} indicates the availability of view templates for
* a particular templating engine such as FreeMarker or Thymeleaf
*
* Indicates the availability of view templates for a particular templating engine such as
* FreeMarker or Thymeleaf
*
* @author Andy Wilkinson
*
* @since 1.1.0
*/
public interface TemplateAvailabilityProvider {
/**
* Returns {@code true} if a template is available for the given {@code view},
* otherwise {@code false} is returned.
* Returns {@code true} if a template is available for the given {@code view}.
* @param view the view name
* @param environment the environment
* @param classLoader the class loader
* @param resourceLoader the resource loader
*/
boolean isTemplateAvailable(String view, Environment environment,
ClassLoader classLoader, ResourceLoader resourceLoader);