RAP 2.0 M2 - New and Noteworthy

Here's a list of the most noteworthy things in the RAP
2.0 M2 milestone build which is available for download
since October 05, 2012.

Network / Communication

Client-to-server JSON-based protocol

In 1.5 we replaced the communication between server and client with a new, JSON-based format.
Now, the client uses the same format to report changes to the server.
With this change, the entire communication uses the JSON protocol.
No HTTP request parameters are involved anymore.
All widgets LCAs have been reworked to handle the new JSON-based message.

Changes in LCA Utils

To read the properties from a JSON request, we made some changes to the classes
WidgetLCAUtil and ControlLCAUtils.
If you've developed custom widgets that use them, please refer to the JavaDoc of these classes
for details.

New Client API

Now that alternative clients can be connected to a RAP server, applications will need to
distinguish between different clients, e.g. to render parts differently on certain clients.
Clients with additional capabilities like gps, camera, etc. should also be able to expose
those client-specific features to applications.

To support those cases, we added a service provider interface Client that can be
acquired using the new method RWT.getClient().
Client implementations can provide services, such as a geo-location service, a script execution
service, etc. Here's an example:

Unless you have a custom client implementation installed, RWT.getClient() will always
return an instance of WebClient.
The web client does not provide any services yet. But we plan to implement at least a script
execution service in the next milestone.

Please consider this new API as provisional.
It may become necessary to change it before the release.

Bugfixes

This list
shows all bugs that have been fixed for this milestone build.

Previous Builds

The above features are just the ones that are new since the last milestone build.
Summaries for earlier builds: