The Eclipse Foundation announced the release of the Eclipse Rich Ajax Platform (RAP) 1.0, a toolkit that provides a server-side subset of SWT to create Ajax applications.
The Eclipse Rich-Client Platform has for some time allowed developers to build custom applications on top of the Eclipse runtime and general application framework. Today the Eclipse Foundation announced RAP, the Eclipse Rich Ajax Platform, that extends the rich-client platform to the server, mainly by providing a special, server-side implementation of Eclipse's Standard Widget Toolkit:
The RAP project enables developers to build rich, Ajax-enabled Web applications by using the Eclipse development model, plug-ins with the well known Eclipse workbench extension points, JFace, and a widget toolkit with SWT API (using qooxdoo for the client-side presentation)...
RAP is very similar to Eclipse RCP, but instead of being executed on a desktop computer, RAP is run on a server and clients can access the application with standard browsers. This is mainly achieved by providing a special implementation of SWT (a subset of SWT API)...
[RAP provides] a complete set of frameworks for creating Ajax applications that support scalable user interfaces, complex widgets, databinding and loose coupling for UI elements...
According to RAP project lead Ludwig Neer, the approach RAP has taken to rich-client development allows desktop and browser-based versions of an application to re-use large parts of the same code base:
The ability to create and deploy RIA or RCP applications from the same Java code base... allows organizations the flexibility to create browser-based RIA application or desktop-based rich client applications...
Support for creating Ajax applications based on the OSGi component model [means that] Java developers [can use] tools that tightly integrate with the Eclipse platform and ... to quickly develop, test, debug and deploy RIA applications.
The RAP framework already comes with several useful Ajax widgets, and it also makes it easy to create RAP-based custom widgets:
Creating custom widgets in RAP is a hot topic... The main problem is the distributed nature of RAP which requires that all components of your custom widget have to play together and have some different aspects than custom widgets in SWT...
There are two different types of custom widgets. On the one side we have compounded widgets which is just an agglomeration of already existing widgets. As this would be done in the same way like SWT... [To create true custom widgets], create a widget which will be used on the server
create an adapter to connect the widget with the RAP lifecycle
The Eclipse RAP project page contains links to several RAP-based rich-client applications.
What do you think of the use of the OSGi model for creating rich Web applications?