This week Genuitec and Skyway Software released the second milestone (M2) of MyEclipse for Spring 8.6, which includes scaffolding for Google Web Toolkit (GWT) applications.  With this new release, you can now generate full ready-to-run GWT applications from your domain model (i.e. DB tables, Java Beans, or JPA Entities).

The new GWT scaffolding option is available using the same scaffolding wizard that MyEclipse for Spring developers are already familiar with.  The scaffolding wizard is a one-stop shop for all of the MyEclipse for Spring scaffolding capabilities, which also includes Spring MVC, Spring Web Flow and Adobe Flex scaffolding.

Here are some of the most interesting aspects of this new capability.

GWT 2.0.4

Our GWT scaffolding is based on GWT 2.0.4, which is the latest GA version of GWT.  So you can immediately use the GWT scaffolding on production projects, as there’s no dependency on early access or non-GA libraries.

GWT Best Practices

As you’ve come to expect from MyEclipse for Spring, the scaffolded code is based on best practices.  In addition to using Spring best practices for the back-end server logic, the GWT UI code and GWT-Spring integration code follows GWT best practices, which is based on the GWT best practices from last year’s Google I/O session with Ray Ryan and the series of Large scale application development and MVP articles from Chris Ramsdale.  In these resources Ray Ryan and Chris Ramsdale recommended using:

  • The MVP pattern (Model-View-Presenter) - for structuring the application
  • Application events / Event Bus - for loosely coupling application components
  • The Command pattern RPC - for RPC calls between client and server

The GWT applications generated by MyEclipse for Spring incorporate these best practices, and others from GWT practitioners.  I’ll dive more into this in a future blog post, but here’s a high-level architecture diagram that graphically depicts the architecture and patterns used in the GWT scaffolding.

The GWT project is constantly evolving, and the most recent Google I/O session discussed some changes that are coming to GWT in the future.  As with any technology, the best practices evolve with the changes in the technology, and MyEclipse for Spring is committed to incorporating newer best practices as they evolve from the GWT community.

Application Layering

GWT scaffolding is built on the same classic application layering architecture used by the other MyEclipse for Spring scaffolding capabilities.  While the front-end may be different for GWT, the GWT application leverages the same back-end application architecture that is also used for Spring MVC, Spring Web Flow and Adobe Flex applications.

Spring 2.5/3.0 Support

Don’t be fooled into thinking that GWT applications require Spring 3.0.  While Spring 3.0 has some great new features, GWT applications integrate and run very well with Spring 2.5.x.  Some development shops have migrated to Spring 3.0, but there are still a ton of development shops using Spring 2.5.x.  GWT is mostly a UI technology for AJAX applications, and a GWT application shouldn’t have dependencies on a specific server-side framework.  MyEclipse for Spring lets you easily choose which version of the Spring framework you want to use, but the choice has zero affect on generated GWT code.  That means that you can start using GWT with existing Spring 2.5.x projects and easily migrate to Spring 3.0 when you’re ready.

Let us know what you think

As excited as we are about this new feature, we are eager to hear what the developer community thinks about our GWT scaffolding capability.  There are a few ways to get your hands on the 8.6 Milestone. Please post all feedback, questions and issues to the MyEclipse for Spring section of the MyEclipse forums.

A tutorial for GWT scaffolding can be found here, and a screencast can be found here.

Related Posts

Updating your Angular app to Angular 4 Hopefully at this point you are no longer lost in Angular migration -- you’ve either installed the lastest version of Angular or have upgraded to it.  But what if you still have an app that you’d been working on with Angular 2, for instance?  No worries!  It’s a breeze getting it up to speed!An Angular 2 project can be updated to Angular 4 with jus...
Software Delivery Evolving for You! Getting all the right software packages to the right teams is not your regular pizza delivery! Our Secure Delivery Center (SDC) has been making administrators’ lives easy by allowing them to provide end users with software, manage licenses, software updates, rollouts, and standardization -- all from one spot. Located behind your firewall, it has ho...
Darkest Dark for Authentic Souls. If you are not fashion-challenged in the web development world and like to show your true colors, Darkest Dark theme is for you. Unlike the fake sense of self provided by Nordstrom’s mud-stained jeans, our theme appeals to your authentic developer’s identity, providing features that do make sense and allow you to work in a much more pleasant manner...
CodeFully for Full-stack Development — the C... Have you ever walked into a candy store and secretly wished that the whole thing belonged to you?  Probably many of us did when we were kids.  But in reality you were a chocolate lover, so all you really wanted was that enormous chocolate aisle that had everything to make your heart content -- from little chocolate-covered marshmallows to full-...

Posted on Jul 8th 2010