Thymeleaf 3.0.0.BETA03 just published!

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Thymeleaf 3.0.0.BETA03 just published!

danielfernandez
Administrator

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.
  • Large performance improvements.

The engine throttling mechanism will allow thymeleaf to be integrated much more beautifully into popular reactive JVM frameworks such as vert.x, RatPack, Play or the upcoming Spring Reactive. Learn more here: https://github.com/thymeleaf/thymeleaf/issues/487

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:


How to start using it

The binaries have been uploaded to the Maven/Gradle Central repositories, so you can just set 3.0.0.BETA03 as version in your build files and everything should run smoothly. For example:

    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf</artifactId>
      <version>3.0.0.BETA03</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf-spring4</artifactId>
      <version>3.0.0.BETA03</version>
      <scope>compile</scope>
    </dependency>

If you prefer, you can also download a complete binary distribution (together with all JavaDoc and all external dependencies) from the Bintray distribution repository.

More info at the project's Download Page.


JavaDoc


Published artifacts

The current artifacts have been published in 3.0.0.BETA03 version:

  • thymeleaf
  • thymeleaf-spring3
  • thymeleaf-spring4
  • thymeleaf-testing
  • thymeleaf-extras-springsecurity3
  • thymeleaf-extras-springsecurity4

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!

Regards,
Daniel.

Reply | Threaded
Open this post in threaded view
|

Re: Thymeleaf 3.0.0.BETA03 just published!

yvanavermaet
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.

Kind regards,
Yannick

Reply | Threaded
Open this post in threaded view
|

Re: Thymeleaf 3.0.0.BETA03 just published!

alexK
In reply to this post by danielfernandez
Great work!
Thank you!

and +1 for layout dialect
Reply | Threaded
Open this post in threaded view
|

Re: Thymeleaf 3.0.0.BETA03 just published!

tazabreu
Very nice work! Thymeleaf is awesome. +1 for the layout dialect. Should definetely be native