Announcing the Final Release of GWT 2.1

Posted by David Chandler - Thursday, October 28, 2010 at 11:25:00 AM

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.

Download the Google Plugin for Eclipse or SpringSource Tool Suite to get started now!


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.
Google Plugin for Eclipse
  • 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.
Google Speed Tracer
  • 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.


Getting Started

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.

Select import source

This will run a series of Roo commands that produce the following starter web app:

Run as Web application

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

Starter app

Once imported you can now run your app directly from STS by right clicking on the project and selecting the “Run As->Web Application”

Roo command line

From there you can start customizing it using our GWT Developer Guides and Roo documentation to help you along the way.

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.

Want to get started? Please download the Google Plugin for Eclipse now! You can jump right in with the Getting Started with GWT 2.1. docs. GWT 2.1 is also available in Maven Central as version 2.1.0.

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!

Advancing cloud computing with integrated developer tools by Google and VMware

Posted by Chris Ramsdale - Wednesday, October 20, 2010 at 4:16:00 PM

Earlier this year at Google I/O, we announced a collaboration between Google and VMware focused on making it easy to build business-oriented, cloud portable web apps. We showed how businesses could use our integrated developer tools to build modern web apps that are “cloud ready” from the start, and can be deployed to any standard environment, including Google App Engine and on VMware vFabric on-premise solutions. Today we are happy to announce that these tools will be generally available within the next few weeks.

Of course, if you’re itching to get a head start, you can jump right in by downloading the release candidate (RC1) versions of the tools. The easiest way to get the entire tool set is to by downloading SpringSource Tool Suite RC1.

If you’d prefer to wait for the general release, you can sign up here to be notified as soon as they are available.

Spring Roo and Google Web Toolkit - Spring Roo, a next generation rapid application development tool, combined with the power of Google Web Toolkit (GWT) enables developers to build rich browser apps in enterprise production environments. These GWT-powered applications leverage modern browser technologies such as AJAX and HTML5 to create the most compelling end-user experience on both desktops and mobile browsers.

Spring Insight and Google Speed Tracer - Google’s Speed Tracer with VMware’s Spring Insight performance tracing technology enable end-to-end performance visibility into cloud applications. This integration provides a holistic view into the web application performance, improving the end-user experience by optimizing the client side as well as the server side.

SpringSource Tool Suite and Google Plugin for Eclipse - The integration of SpringSource Tool Suite and the Google Plugin for Eclipse makes it easy for developers to build and maintain large scale, web-based, enterprise applications, putting tools that were previously only available when building desktop and server solutions in the hands of those building cutting edge web apps.

For a complete “Getting Started” guide, be sure to checkout Getting Started with GWT, Spring Roo, and SpringSource Tool Suite.

Moving forward, both teams are excited about the strides we can make in the mobile web app space. As it stands today, the current technology stack makes it possible to create optimized web apps targeted for the mobile browser. Longer term, we will be looking at incorporating mobile best practices, styled UIs, and HTML5 features such as app cache, local database storage, and geolocation to make the developer and end-user experience first class.

As always, we’d love to hear your feedback and thoughts on this release. Our GWT developer forum is the best place to post this information. Happy coding!

By Brad Abrams, Google Developer Team

Using a dynamic host page for GWT apps

Posted by David Chandler - Wednesday, October 13, 2010 at 9:12:00 AM

A new article on the GWT articles site discusses some of the benefits of hosting a GWT app in a dynamically generated page vs. static HTML.

Using a Dynamic Host Page for Authentication and Initialization

GWT 2.1 RC1 is now available

Posted by Chris Ramsdale - Monday, October 11, 2010 at 6:50:00 PM

Building on the three previous milestones, we're happy to announce the first release candidate (RC1) of GWT 2.1. While we're still focused on the overall theme of making it easier to build cloud portable business apps via some help from our friends at VMware and Spring, there are more than a few aspects that make this milestone a RC.

First we've rounded out the list of components and features that will ship with GWT 2.1. One of these components is a new Editor framework that allows you to bind your DTOs to a customizable UI which handles all of necessary grunt work of validating and syncing change sets. Another is the availability of the SafeHTML component and its integration within the cell-based widgets. After all, we've optimized these new widgets by injecting HTML, we better do it in a secure manner.

Along with the new components and features, we've solidified the Activities/Places, RequestFactory, Editor framework, and Cell-based widget APIs. So, if you're looking to start a project with GWT 2.1, you can feel confident that your team won't have to refactor code because we've switched out interfaces between now and the final release.

Also, if you're looking to get started with GWT 2.1 we have an initial draft of the new Developer Guides. These can be found at the links below (the Editor framework Developer Guide is coming soon).

As with previous milestones, to get the full effect, you'll want to pick up the Spring Roo RC1 and SpringSource Tool Suite RC1. Ben and Christian from the SpringSource teams have been hard at work adding features and functionality, and it's great to see that we're all very close to the final release.

GWT 2.1 RC is available on our Google Code download site and as version 2.1-SNAPSHOT in the Google Maven Snapshot Repository. We’d love to hear your feedback and thoughts on this release, and our GWT Developer Forum would be the best place to post this information.