The first (BETA) version of Thymeleaf 3.0 has just been published: 3.0.0.BETA01
After many, many months of hard work, this is the first version of Thymeleaf 3.0 that is aimed at users to start testing the new features and integrators to start updating and building their extensions (dialects, resolvers, etc.) on top of the new architecture.
Thymeleaf 3.0 is a complete rewrite of the template engine. While this should not affect template code (template code in 3.0 is 99% backwards compatible), most Java APIs have been changed and improved, which means that custom dialects and processors, custom resolvers, etc. will need to be updated in order to work with Thymeleaf 3.0.
For most people using Thymeleaf in their Spring MVC based applications, however, migrating to 3.0 should be as easy as replacing ServletContextTemplateResolver with SpringResourceTemplateResolver in their Spring configuration and start using the new features :)
We have published a five-minute migration guide that should be a nice start for most, but you can also have a look at these extensive descriptions of the new features and capabilities in the form of GitHub tickets:
A couple of things are still to be developed, like DOM expressions and decoupled templates, but those will come in the next BETA. You can have a look at the Thymeleaf 3.0 Milestone on GitHub and see what is pending (and what is done!)
How to start using it
The binaries have been uploaded to the Maven/Gradle Central repositories, so you can just set 3.0.0.BETA01 as version in your build files and everything should run smoothly. For example:
The current artifacts have been published in 3.0.0.BETA01 version:
Apache Tiles integration for 3.0 is not ready yet. Note also that thymeleaf-extras-conditionalcomments is not needed anymore, as its functionality is covered by Thymeleaf's core now, without needing any extensions.
We hope you like it, and enjoy it. We are really eager to hear your feedback!
java.lang.IllegalStateException: Could not evaluate condition on org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration due to internal class not found. This can happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)
Caused by: java.lang.NoClassDefFoundError: org/thymeleaf/resourceresolver/IResourceResolver
Thanks for the great work on Thymeleaf 3.0, it seems very promising.
Do you have any idea how long the BETA phase will last ? We're currently investigating Thymeleaf as template engine for our emailing application. Performance and stability are critical for us (we are sending millions of email each year), so we prefer to wait for 3.0 release before switching to Thymeleaf.
Great work and a lot of thanks to all the involved persons on that project. I will try to upgrade our applications code to this version asap. Just need to wait some time for the also great layout dialect :)
sorry, we don't have a precise estimate about the beta period duration, it will depend on the issues encountered (now all tests pass with BETA01) and the time that the dialect authors take to adapt their dialects.
But if you are using no dialects, or dialects already adapted to Thymeleaf 3, my recommendation is start using Thymeleaf 3, it is a stable release.