Twitter Logo Follow us on Twitter
Project Information About this project

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.

The exact format is described in the RAP Protocol wiki page.

API Changes

Removed deprecated classes

During the API clean-up, the following deprecated classes have been removed.

AdapterFactory
removed without a replacement together with the extension point, see bug 344541
ResourceManagerFactory
remove withot a replacement, see bug 348476

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:

Client client = RWT.getClient();
LocationService service = client.getService( LocationService.class );
if( service != null ) {
  service.getAddress();
  ...
}

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:

RAP 2.0 Migration Guide

After 6+ years of development in the 1.x stream, we're cleaned up some API in RAP 2.0. To assist you with the migration from 1.x to 2.0, we maintain a migration guide.