RAP for RCP developers

The Remote Application Platform (RAP) enables Eclipse RCP developers to build rich web applications written in Java, using the same tools and APIs as for RCP development. With RAP, web applications and desktop applications can be built from a shared codebase.

Using course material designed by the RAP project leaders and committers, the people who literally developed the technology, this course builds on your knowledge of Eclipse RCP and shows you how to use RAP to kick-start your web development efforts. Our experienced Eclipse developers, with years of product development background, teach you everything you need to develop RAP-based web applications. Along the way, they provide deep insights and give a special focus on techniques for porting existing RCP applications to RAP and single-sourcing — creating a codebase that is shared between both the desktop and the web.

Course participants walk through the elements of porting RCP applications to RAP and single-sourcing in a series of hands-on sessions. Keeping a small class format (max. 6-8 participants) ensures that you’ll gain a broad understanding of Eclipse RAP and get plenty of individual support from our experts.

Duration: 2 days

Dates and Registration

This training is offered on request only. Please, contact us at karlsruhe@eclipsesource.com with your requirements and we will be happy to check our availability.

Course Goals, Audience, and Prerequisites

Course Goals

  • Understand the fundamental concepts of the Eclipse Remote Application Platform (RAP)
  • Apply this knowledge to your web development projects
  • Become familiar with best practices for RAP development
  • Explore the relationship between RCP and RAP
  • Learn how to port existing RCP applications to RAP and understand single-sourcing — creating a shared codebase for RAP and RCP applications

Target Audience

  • Experienced Eclipse RCP developers looking to benefit from Eclipse’s Remote Application Platform (RAP) for developing general web applications
  • Software architects interested in building business-wide software platforms


  •  A good understanding of RCP concepts
  • Experience of using the Eclipse IDE
  • Knowledge of Java and object-oriented programming

Course Outline

Introduction to RAP and RWT

  • Technical overview of RAP, a brief history
  • Base technologies: OSGi, Servlets
  • Comparison of RAP and RCP
  • Usage options: minimal or full-stack
  • Understanding the RAP protocol

Getting Started

  • Using the RAP Tools in Eclipse
  • Learning about bundles in the RAP runtime
  • Setting up a target platform
  • Creating and launching a minimal RAP application

Threading Model

  • Apartment Threading in SWT
  • Thread model differences between SWT and RAP
  • SWT compatible vs. JEE compatible operation mode
  • Writing background jobs that update the UI

Server-Side Scopes

  • Understand the different scopes in RAP’s multi-user environment
  • Learn where to store user data, session data, and shared data
  • Store data beyond the lifetime of a session
  • Adjust existing Singletons to user sessions
  • Session management and timeouts

Single Sourcing

  • Writing a desktop and a web application from a single code base
  • Where to expect differences between RCP and RAP
  • Strategies to hide implementation differences and APIs
  • Handling different dependencies
  • Recommended practices for single-sourcing projects

Internationalization (i18n)

  • User locales in RAP
  • Dealing with i18n in a multi-user / multi-language environment
  • Multi-language support for extensions

Additional RAP Features

  • Hooking into the browser navigation
  • Enable HTML markup in widgets
  • Uploading files from the client
  • Client services
  • Use Scripting to process events on the client
  • Enhancements for Tree and Table
  • Tabbed browsing for RAP applications

Custom Widgets

  • Best practices for creating custom widgets
  • Composed custom widgets
  • Available custom widgets for RAP
  • Writing your own RWT custom widget in Java and JavaScript
  • Use remote objects to synchronize server and client states


  • Understand RAP different APIs for styling
  • Change the default look and feel of RWT widgets
  • Adjust an application to a corporate design
  • Define widget variants with a distinguished style
  • Customize the URL, browser icon, and other aspects of an application
  • Customize the workbench presentation in RAP


  • Unit testing RAP applications
  • Load testing RAP applications
  • Common issues and pitfalls
  • Performance optimizations
  • Options for UI Testing


  • WAR deployment
  • OSGi-based deployment
  • Comparison of deployment options
  • Creating a WAR file from Eclipse

More Info


  • Course duration: 2 days
  • Course structure: instructor-led with at least 50% hands-on labs and tutorials
  • Learn better in a small group: maximum 6-8 participants per instructor
  • Equipment: participants supply their own computer with an up-to-date installation of Eclipse


Classes in Germany are held in German. All other courses are held in English. Other languages are available on request.