Hi everyone,
We are excited to release the second milestone build for GWT 2.0
today. This milestone is essentially feature complete, and provides
somewhat more stability in the various bits of core functionality that
will be coming in GWT 2.0.
Please download the distribution from:
http://code.google.com/p/google-web-toolkit/downloads/list?can=1&q=2.0+Milestone+2
Milestone 2 contains a couple new features and changes from MS1:
* Layout Panels: Layout panels have been refined since MS1. In
particular, the TabLayoutPanel has been introduced, and UiBinder has
been extended to support it and StackLayoutPanel. Layout panels use
native css, so they resize with the window smoothly (IE6 uses active
layout to achieve the same effect, but it is still fast in most
cases). When paired with UIBinder, users can create applications
faster than ever. (Read more about UiBinder under Declarative User
Interface, below.)
Breaking changes in MS2:
* The way arguments are passed to the GWT testing infrastructure has
been revamped (and changed slightly from MS1). There is now a
consistent syntax to support arbitrary "runstyles", including user-
written with no changes to GWT. Though this does not affect common
launch configs, some of the less common ones will need to be updated.
For example:
* '-selenium localhost:4444/*firefox' has become
'-runStyle Selenium:localhost:4444/*firefox'
* '-remoteweb rmi://localhost/ff3' has become
'-runStyle RemoteWeb:rmi://localhost/ff3'
* '-manual 5' has become '-runStyle Manual:5'
Note: run style names must be capitalized (ex. Selenium).
Known Issues in MS2:
* LayoutPanels only work in strict mode, but new GWT applications are
created in quirks mode by default. You must manually switch your
application to strict mode by changing the DOCTYPE at the top of your
application's html file. Existing widgets that do not work correctly
in strict mode (ex. StackPanel) now have a LayoutPanel counterpart
that does work in strict mode (ex. StackLayoutPanel).
* Connecting multiple browsers at the same time in development mode
can cause the development mode server to crash. You can avoid this by
waiting for each browser to start your app before connecting another
browser.
* If you are planning to run the webAppCreator, i18nCreator, or the
junitCreator scripts on Mac or Linux, please set the executable bits
by doing a 'chmod +x *Creator'
* Our HtmlUnit integration is still not complete. Additionally,
HtmlUnit does not do layout. So tests can fail either because they
exercise layout or they hit bugs due to incomplete integration. If you
want such tests to be ignored on HtmlUnit, please annotate the test
methods with @DoNotRunWith({Platform.Htmlunit})
To reiterate, here are a few key notes from the Milestone 1
announcement...
* Terminology changes: We're going to start using the term
"development mode" rather than the old term "hosted mode." The term
"hosted mode" was sometimes confusing to people, so we'll be using the
more descriptive term from now on. For similar reasons, we'll be using
the term "production mode" rather than "web mode" when referring to
compiled script.
* Changes to the distribution: Note that there's only one download,
and it's no longer platform-specific. You download the same zip file
for every development platform. This is made possible by the new
plugin approach used to implement development mode (see below). The
distribution file does not include the browser plugins themselves;
those are downloaded separately the first time you use development
mode in a browser that doesn't have the plugin installed.
* In-Browser Development Mode: Prior to 2.0, GWT hosted mode provided
a special-purpose "embedded browser" to debug your GWT code. In 2.0,
the web page being debugged is viewed within a standard browser.
Development mode is supported through the use of a native-code plugin
for each browser. In other words, you can use development mode
directly from Safari, Firefox, IE, and Chrome.
* Code Splitting: Developer-guided code splitting allows you to chunk
your GWT code into multiple fragments for faster startup. With code
splitting, you can arrange to load just the minimum script needed to
get the application running and the user interacting, while the rest
of the app is downloaded as needed.
* Declarative User Interface: GWT's UiBinder now allows you to create
user interfaces mostly declaratively. Previously, widgets had to be
created and assembled programmatically, requiring lots of code. Now,
you can use XML to declare your UI, making the code more readable,
easier to maintain, and faster to develop. The Mail sample has been
updated to use the new declarative UI.
* Bundling of resources (ClientBundle): GWT has shipped with
ImageBundles since GWT v1.4, giving developers automatic spriting of
images. ClientBundle generalizes this technique, bringing the power of
combining and optimizing resources into one download to things like
text files, CSS, and XML. This means fewer network round trips, which
in turn can decrease application latency -- especially on mobile
applications.
* Using HtmlUnit for running GWT tests: GWT 2.0 no longer uses SWT or
the old mozilla code (on linux) to run GWT tests. Instead, GWT 2.0 now
supports HtmlUnit as the built-in browser for testing. HtmlUnit is
100% Java. This means there is a single GWT distribution for linux,
mac, and windows, and debugging GWT Tests in development mode can be
done entirely in a Java debugger. Production mode tests can still be
run in any browser via HtmlUnit (default), manual mode, GWT's remote
web, or Selenium depending on your use of -runStyle. Development mode
tests can also be run using any browser that has the Development mode
plugin installed (HtmlUnit has it by default).
As always, remember that GWT milestone builds like this are use-at-
your-own-risk and we don't recommend it for production use. Please
report any bugs you encounter to the GWT issue tracker
(
http://code.google.com/p/google-web-toolkit/issues/list) after doing
a quick search to see if your issue has already been reported.
-- John LaBanca, on behalf of the Google Web Toolkit team