Commit c68ffa5b authored by Eddú Meléndez's avatar Eddú Meléndez Committed by Stephane Nicoll

Add Thymeleaf's Java8TimeDialect

Closes gh-4576
parent 24b953ed
...@@ -505,6 +505,11 @@ ...@@ -505,6 +505,11 @@
<artifactId>thymeleaf-extras-conditionalcomments</artifactId> <artifactId>thymeleaf-extras-conditionalcomments</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
<optional>true</optional>
</dependency>
<dependency> <dependency>
<groupId>org.thymeleaf.extras</groupId> <groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId> <artifactId>thymeleaf-extras-springsecurity4</artifactId>
......
...@@ -29,6 +29,7 @@ import org.apache.commons.logging.Log; ...@@ -29,6 +29,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.thymeleaf.dialect.IDialect; import org.thymeleaf.dialect.IDialect;
import org.thymeleaf.extras.conditionalcomments.dialect.ConditionalCommentsDialect; import org.thymeleaf.extras.conditionalcomments.dialect.ConditionalCommentsDialect;
import org.thymeleaf.extras.java8time.dialect.Java8TimeDialect;
import org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect; import org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect;
import org.thymeleaf.spring4.SpringTemplateEngine; import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.spring4.resourceresolver.SpringResourceResourceResolver; import org.thymeleaf.spring4.resourceresolver.SpringResourceResourceResolver;
...@@ -40,6 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -40,6 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnJava;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
...@@ -61,6 +63,7 @@ import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter; ...@@ -61,6 +63,7 @@ import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter;
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Brian Clozel * @author Brian Clozel
* @author Eddú Meléndez
*/ */
@Configuration @Configuration
@EnableConfigurationProperties(ThymeleafProperties.class) @EnableConfigurationProperties(ThymeleafProperties.class)
...@@ -190,6 +193,19 @@ public class ThymeleafAutoConfiguration { ...@@ -190,6 +193,19 @@ public class ThymeleafAutoConfiguration {
} }
@Configuration
@ConditionalOnJava(ConditionalOnJava.JavaVersion.EIGHT)
@ConditionalOnClass({ Java8TimeDialect.class })
protected static class ThymeleafJava8TimeDialect {
@Bean
@ConditionalOnMissingBean
public Java8TimeDialect java8TimeDialect() {
return new Java8TimeDialect();
}
}
@Configuration @Configuration
@ConditionalOnClass({ Servlet.class }) @ConditionalOnClass({ Servlet.class })
@ConditionalOnWebApplication @ConditionalOnWebApplication
......
...@@ -54,6 +54,7 @@ import static org.junit.Assert.assertTrue; ...@@ -54,6 +54,7 @@ import static org.junit.Assert.assertTrue;
* *
* @author Dave Syer * @author Dave Syer
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Eddú Meléndez
*/ */
public class ThymeleafAutoConfigurationTests { public class ThymeleafAutoConfigurationTests {
...@@ -172,6 +173,17 @@ public class ThymeleafAutoConfigurationTests { ...@@ -172,6 +173,17 @@ public class ThymeleafAutoConfigurationTests {
assertEquals("<html><body data-foo=\"bar\"></body></html>", result); assertEquals("<html><body data-foo=\"bar\"></body></html>", result);
} }
@Test
public void useJava8TimeDialect() throws Exception {
this.context.register(ThymeleafAutoConfiguration.class,
PropertyPlaceholderAutoConfiguration.class);
this.context.refresh();
TemplateEngine engine = this.context.getBean(TemplateEngine.class);
Context attrs = new Context(Locale.UK);
String result = engine.process("java8time-dialect", attrs);
assertEquals("<html><body>2015-11-24</body></html>", result);
}
@Test @Test
public void renderTemplate() throws Exception { public void renderTemplate() throws Exception {
this.context.register(ThymeleafAutoConfiguration.class, this.context.register(ThymeleafAutoConfiguration.class,
......
<html><body th:text="${#temporals.create('2015','11','24')}"></body></html>
\ No newline at end of file
...@@ -153,6 +153,7 @@ ...@@ -153,6 +153,7 @@
<thymeleaf-extras-conditionalcomments.version>2.1.1.RELEASE</thymeleaf-extras-conditionalcomments.version> <thymeleaf-extras-conditionalcomments.version>2.1.1.RELEASE</thymeleaf-extras-conditionalcomments.version>
<thymeleaf-layout-dialect.version>1.3.1</thymeleaf-layout-dialect.version> <thymeleaf-layout-dialect.version>1.3.1</thymeleaf-layout-dialect.version>
<thymeleaf-extras-data-attribute.version>1.3</thymeleaf-extras-data-attribute.version> <thymeleaf-extras-data-attribute.version>1.3</thymeleaf-extras-data-attribute.version>
<thymeleaf-extras-java8time.version>2.1.0.RELEASE</thymeleaf-extras-java8time.version>
<tomcat.version>8.0.30</tomcat.version> <tomcat.version>8.0.30</tomcat.version>
<undertow.version>1.3.14.Final</undertow.version> <undertow.version>1.3.14.Final</undertow.version>
<velocity.version>1.7</velocity.version> <velocity.version>1.7</velocity.version>
...@@ -1963,6 +1964,11 @@ ...@@ -1963,6 +1964,11 @@
<artifactId>thymeleaf-extras-conditionalcomments</artifactId> <artifactId>thymeleaf-extras-conditionalcomments</artifactId>
<version>${thymeleaf-extras-conditionalcomments.version}</version> <version>${thymeleaf-extras-conditionalcomments.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
<version>${thymeleaf-extras-java8time.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.thymeleaf.extras</groupId> <groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId> <artifactId>thymeleaf-extras-springsecurity4</artifactId>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment