GWT 2.8 is here!

Secretly and silently, GWT 2.8 was released recently. The new version is not linked on the official website yet and there is also no updated change log yet. But the tag for the new version and the associated release can be found on the website of the official GitHub repository since the 4th of October.

The official Maven repository also provides GWT 2.8 already: Link.

The compiled jar file can be found with a little bit of URL-Tweaking at the usual location here next to the old RC3 which was made available via the official website.

There are no official release notes for the 2.8. final build yet, but they did not change a lot in comparison to the last release candidate. So let me summarize what has changed.

The biggest highlight is that Java 8 syntax is finally supported. So you can use all the new features of Java 8 now, including Lambdas, which will help a lot. On the other hand, the static and default methods in Java 8 interfaces are not visible to generators, but you can use an annotation processor.

Another important highlight is JSInterop. The final specifications for JSInterop can be found here. JSInterop makes it easier to integrate GWT with JavaScript technologies (like Closure Style Sheets or CSS3) and libraries. JSInterop also helps with the introduction of Web Components which can create even more complex JavaScript integration scenarios. Additionally, you can now use annotations like @JsProperty or @JSType to use JavaScript libraries directly from the GWT code. These annotations, however, are split into their own jar.

The third big change is that GSS is no longer in experimental stadium, and the old CssResource syntax is therefore marked as deprecated now. So you should start thinking about transitioning to GSS.

Other changes are:

  • The compiler has been optimized to speed up the compilation process of big applications by far a bit. The new version will only recompile the part of the AST that was impacted by changes since the last run.
    The second improvement comes with saving the MinimalRebuildCache to the disk, so your application will be compiled much faster after a restart of the process.
  • The old (Non-Super-) Dev Mode is now deprecated.
  • There is now a generic accessor for GWT Properties via System.getProperty() to get the value of a configuration or binding property at compile time.
  • Configurable Checks were introduced for GWT.
  • The general logging and the stack traces for the superdev mode were optimized.
  • The Bean Validation support (JSR303) has been deprecated. It was not really supported for a long time and therefore had many bugs in it.
  • You are no longer allowed to do method references to Double, String, Boolean from JSNI (https://github.com/gwtproject/gwt/issues/9356).
  • GIN needs a workaround now.

Smaller changes are:

  • When cross compiling to JavaScript, the compiler now uses ES6Maps if available for HashMaps/-Sets. This should result in better performance.
  • Switch to new long emulation –> Better performance for smaller numbers
  • Double/Boolean are not boxed anymore.

All changes can be found here, as soon as the changelog becomes available.

Short URL for this post: http://wp.me/p4nxik-2KN
This entry was posted in Java Web Frameworks and tagged , , . Bookmark the permalink.

One Response to GWT 2.8 is here!

  1. Gobi Todic says:

    No official release info is not really assuring regarding the future of GWT.
    While I really like GWT I’m afraid it is quite dead with even Google switching to dart + angular2 for the AdWords relaunch.
    Maybe GWT 3.0 might reignite it but from what I have read GWT will be a very different beast, for example I cannot imagine how this should work when things like the widgets and uibinder are removed.
    What GWT is lacking since the beginning is some kind of high-level support for things like MVC, Routing etc. Sure there are examples floating around how to do this, but this could have been done much better.
    I hope Vaadin stays in business since in many ways it is the solution GWT could have been.

Leave a Reply