The third BETA version of Thymeleaf 3.0 has just been published: 3.0.0.BETA03
And now you are probably saying: What? Wasn't BETA02 supposed to be the last beta before 3.0 went GA? Aaaaaand yes, we did say that. Sorry.
But we decided to make use of what BETA periods are for and do some more significative changes to Thymeleaf 3's engine. Changes that won't affect your existing templates at all, but that might make you need some changes in your code if you are creating custom dialects. Again, sorry. But before starting yelling at us, let us say that it is going to be worth it.
So why does BETA03 exist at all? Put briefly:
Large amount of bugs fixed, including some of an architectural origin.
Large decrease in complexity in key parts of the engine.
Implementation of an engine throttling mechanism for better integration with reactive architectures.
As for the reduction of complexity and the performance improvements, they are the result of turning a large part of the Thymeleaf model –the event objects, specifically– into immutable form. This is what might provoke changes in your existing code if you are developing custom dialects (see https://github.com/thymeleaf/thymeleaf/issues/488 for more info), and again we are sorry for that, but the reasons are quite powerful: look at the performance improvement since BETA02, including the original difference with 2.1.4 (in the chart, 3.0.0-SNAPSHOT is what now is BETA03):
And it's not all about performance: several parts of the engine have now become vastly more maintaineable thanks to these changes. So we just had to go for it.
So let's focus on BETA03
This BETA is feature-complete (at least a bit more feature-complete than BETA02 ;-)) and yes, again we believe this should be the last BETA on the road to 3.0 GA.
Actually, after this, 3.0.0.RELEASE should be out in a matter of weeks.
As explained for all the previous BETAs, 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.
We have published a ten-minute migration guide that should be a nice start for most, but you can also have a look at these extensive descriptions of the major new features and capabilities in the form of GitHub tickets:
The current artifacts have been published in 3.0.0.BETA03 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!
Nice! Congratz on the new beta release. Looking forward to testing this new beta.
Any more info on the Layout Dialect? I can't emphasize it enough: it's a crucial part of many set-ups. I understand it's being maintained by one of the core developers and this isn't really the place to ask, but without it we can't/won't use Thymeleaf 3. Hoping for a positive response.