Starting today, there is a simpler way to use the JavaTM language to develop and deploy world-scalable web applications. We are very happy to announce today:
- Google Web Toolkit 1.6,
- An early look at Google App Engine for Java, and the brand-new
- Google Plugin for Eclipse that supports a productive integration of the two.
What does this mean for you? It is easier than ever to create sophisticated web applications entirely in the Java language with Google Web Toolkit while working productively in Eclipse. And the moment you're finished, with only a few button clicks you can upload and publish your application to the world on App Engine.
In GWT 1.6, we've tried to make common tasks simpler while making it possible to do even more advanced things. If you're brand new to GWT, some of this is going to sound like gibberish, so you'll also want to take a look at the Product Overview as a gentler introduction.
Direct support for war output and related tools
- GWT 1.6 changes the conventions for project organization to center on the standard Java web archive deployment structure. This new war support makes it easier to introduce GWT modules into existing web applications. It also makes GWT development more flexible by allowing hosted mode to work easily with any standard servlet container.
- In conjunction, there is a new webAppCreator tool which replaces the older projectCreator and applicationCreator tools. It is a unified, war-aware tool that can quickly create a working GWT module, configuration files, source files, and an ant build file that you can use as a starting point for your own code.
- And, of course, it's pretty easy to create a war directory layout that you can upload to App Engine.
Hosted mode and compiler enhancements
- Hosted mode has been enhanced to take advantage of the new war-centric project structure to provide additional conveniences. For example, the new "Restart Server" button reloads server-side code without you having to restart your debugger, which can save you time when you're developing RPC services. Also, for you GWT experts out there using hosted mode with your own custom servers — if you know what "-noserver" is, I'm talking to you — you'll be glad to know that hosted mode integration "just works" now; generated resources such as bundled image files are automatically recreated when you refresh the hosted browser. This, too, can help speed up your development cycle.
- Hosted mode has also been modified to work smoothly with EMMA's offline instrumentation, so that you can easily generate code coverage reports. If you're an Eclipse user, in addition to using the new Google Plugin for Eclipse, you should also look at EclEmma, which makes it easy to enable code coverage for any launch configuration.
- Finally, the GWT compiler has gone parallel. It can compile multiple output permutations in parallel using the new -localWorkers flag, which can speed up web mode compiles noticeably on multi-core machines. In more elaborate build systems, it is also possible now to do parallel distributed compiles using the new compiler lifecycle classes Precompile, CompilePerms, and Link.
New widgets and a shiny new approach to event handling
- A big change that you will surely notice is GWT's overhauled event handling. The new Handler pattern for managing widget events is easier to understand and more succinct than in previous releases. Widget writers can also easily create their own custom events.
- The customizable and internationalized DatePicker is now a standard widget, and the new LazyPanel helps you speed up your code by delaying the creation of widgets until they're actually needed.
- There's also a new API for triggering browser native events programmatically, which is a real boon for unit testing.
As usual, there are many more improvements than we can list above. The issue tracker has the full list of changes. We hope that these new features in GWT 1.6 will seem like only the beginning, though, as you start to using GWT alongside the new Google Plugin for Eclipse and deploying your code on App Engine. There's lots more to come on how these technologies work together to help you do cool new stuff faster.
Last but not least, the GWT team will be at Google I/O on May 27-28, giving in-depth sessions on GWT and eager to hear your feedback on these new features. We hope you'll join us.