Many Eclipse projects follow a common theme of extensible platforms with exemplary tools. Eclipse projects are often designed with a high degree of extensibility in mind, allowing consumers to use the technology in ways never imagined by the original developers. The RAP project is excellent example of this type of extensibility integrated with Eclipse. Instead of targeting the desktop (Rich Client Applications), RAP provides a platform on which Web-Based (Rich Ajax) applications can be built. By simply replacing the SWT / Platform bundle with RAP, you can reuse your RCP based code-base in a web-based scenario.
When junior developers first hear about RAP their first question is often: why would I want my Eclipse IDE in a browser? While this certainly one path you could take with RAP, it was never the objective. RAP is about reusing your exiting Eclipse / Java: 1) code-base, 2) domain knowledge, 3) developer tools, and 4) skills, in a web-based application. Instead of hiring a separate team (with vastly different skill sets, tools, libraries, etc…) to build your web-based solution, you can reuse most of the work you’ve already done. With Eclipse Juno, the RAP team has taken this even further by designing an open protocol which can be used to completely decouple the RAP server from the client. The RAP Protocol is Number 7 on my Juno Top 10 List.
There are already several client side implementations of the protocol, including an open reference implementation based on HTML 5, and several developer previews for mobile devices (such as Android and iOS smartphones and tablets).
In addition to the protocol, the team has added a number of improvements to RAP. The RAP look and feel was given a facelift:
You can now add custom HTML markup inside some widgets (like table cells):
Table table = new Table( parent, SWT.BORDER ); table.setData( RWT.MARKUP_ENABLED, Boolean.TRUE ); TableItem item = new TableItem( table, SWT.NONE ); item.setText( "Some <em>text</em> with <strong>markup</strong>" );
Finally, you can now run RAP without the entire Eclipse workbench, making it really easy to build web-based APIs on top of Equinox and other Eclipse technologies.
Ivan Furnadjiev, Ralf Sternberg and Tim Buschtöns are the hard-working committers behind RAP! Markus Knauer helped with the RAP transition from CVS to Git this year. Thanks guys, you make my life so much easier!
For more Eclipse Tips and Tricks (and the anual Top 10 List), why not follow me on twitter: