For several months now, we’ve been hard at work adding the features and functionality that was first demoed at this year’s Google I/O. The goal of this release has been to make it easy to build business oriented web apps that can take full advantage of the cloud -- zero deployment, instant scaling, cost savings, and portability that allows you to run your app in a variety of cloud environments, such as Google’s hosted service, App Engine, and VMware’s on-premise solution, vFabric. A few weeks ago we mentioned that we were close to wrapping up this project, and today we’re happy to announce the general availability of these tools.
Developer Tools for Business Apps
Google Web Toolkit SDK
- The GWT SDK makes it possible to build just about any application you can imagine. For the 2.1 release though, we aimed to provide a set of building blocks that will scale to support your entire user base, but at the same time are easy to piece together to get a web app up and running. We’ve wrapped these building blocks up in an application framework that offers the following:
- Data bound views - An app that doesn’t allow end users to view or edit data isn’t terribly useful, now, is it? With GWT 2.1’s Data Editors, developers can create views that are generated from their app’s data model. These views are completely customizable, and handle all of the nasty work of syncing change sets between the client and server.
- Highly optimized communication layer - One of the key ways to improve both developer and application efficiency is to get Remote Procedure Calls (RPCs) right. The new communication layer, RequestFactory, does just this. We’ve worked to minimize the payloads being sent between client and server in order to make RPCs as fast as possible, while adding new code generators that build this communication layer based on your app’s data model and the backend services it exposes. For many apps, the developer simply needs to provide server-side find and persist methods in order to get things rolling.
- MVP support - For a while now, GWT developers have been using and advocating the MVP design pattern, and the Activities and Place support within GWT 2.1 are a set of components that formalize this pattern and the associated best practices, enabling efficient app navigation, history management, and view creation.
- Cell widgets - A new set of widgets that are optimized for displaying data sets that contain millions of rows. They achieve this efficiency by having one container widget that is responsible for creating views based on chunks of HTML, and delegating events to these children rather than relying on a large number of heavy weight widgets.
- Spring Roo integration - Developers can now harness the power of Spring Roo 1.1 to create and maintain the large amounts of boilerplate code necessary to construct modern enterprise apps. To enable this, we’ve created a GWT add-on within Spring Roo that, via several new Roo commands, will create an app that targets the new app framework and widgets in GWT 2.1.
- Better support for Maven projects - Google Plugin for Eclipse 1.4 has streamlined support for GWT and App Engine applications that use Maven for dependency management, and will now configure the proper classpath and project settings based on the project's pom.xml. No more having to import a Maven project, only to turn around and add the GWT/App Engine dependencies by hand.
- Speed Tracer integration - Finding the performance bottle-necks in your application has never been easier. Developers can now kick off a speed trace of their app directly from Eclipse and jump back into the Java source from trouble points that are identified by Speed Tracer. Wondering why hovering over a cell is causing your data table to flicker? No problem, click on the problem areas within Speed Tracer to jump to the line your Java source that is triggering this action.
- UI enhancements - Developers can now set up browser profiles that allow them to specify different browsers to use when running and debugging their application.
- Server side speed traces - We were excited when we initially launched Speed Tracer with the GWT 2.0 release because it allows developers to track down performance issues in the browser. But that was only one half of the story. With this release of Speed Tracer it's now possible to view performance characteristics on the server as well.
- Cloud-specific integration - With the above functionality in place we set off to start gathering server-side data and, in the spirit of cloud portability, targeted two initial services:
- App Engine - Using the App Stats capability within Google App Engine, Speed Tracer now has the ability to trace server-side operations such as Memcache hits, and Datastore reads and writes.
- Spring Insight - Building on top of the services offered by Spring Insight, Speed Tracer 1.0 not only allows developers to drill down in to what was happening within the portion of the app running on tc Server, but it also gives them the ability to jump from Speed Tracer directly into Spring Insight to pinpoint the exact piece of code that may be problematic.
If you’re looking to start building apps using the Spring Roo and SpringSource Tool Suite integration, the quickest way to start is by downloading SpringSource Tool Suite and installing the Google Plugin for Eclipse from the main Dashboard component.
Once downloaded, simply start up Roo’s command line interpreter, and run the “script expenses.roo” command.
This will run a series of Roo commands that produce the following starter web app:
Now that we’ve created our app and launched it from the command line, we can import it into STS to start customizing it. To do this switch back to STS and click the menu item File->Import, and then select “Existing Maven Projects”.
Once imported you can now run your app directly from STS by right clicking on the project and selecting the “Run As->Web Application”
For a complete “Getting Started” guide, be sure to checkout Getting Started with GWT, Spring Roo, and SpringSource Tool Suite.
A Big Thanks
As you may be able to tell by the list of available product updates, this release has been the culmination of work of several teams. Thanks to the VMware and Spring engineers (Ben Alex, Christian Dupuis, and teams) for working with us to create a seamless and integrated developer experience. And to the developers that have been riding tip of trunk for the past few milestones, submitting questions, issues, and patches, thanks. It wouldn’t be a success without you.
If you’re interested in receiving updates about existing Google Developer Tools as well as those that are about to be launched, sign up here!