RAP for Java Developers

The Remote Application Platform (RAP) is an Eclipse Java technology for building rich browser-based applications. It enables developers to reuse their existing Java and Eclipse know-how and provides the means for sharing code between web- and desktop applications. This course teaches you everything you need to use RAP for developing web applications.

Using course material designed by the RAP project leaders and committers, the people who literally developed the technology, this course accelerates your adoption of this powerful platform. Our experienced Eclipse developers, with years of product development experience, teach you everything you need to develop RAP-based web applications. Along the way, they are able to provide insights, best practices, and context to help you to start your own development efforts and keep on track.

Course participants incrementally develop a full RAP application from scratch 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: 4 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 Eclipse and the Remote Application Platform (RAP)
  • Apply those concepts by developing a full RAP-based application
  • Gain a working knowledge of the Eclipse RAP architecture
  • Become familiar with best practices for RAP development

Target Audience

  • Java 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


  • Knowledge of Java and object-oriented programming
  • Experience using the Eclipse IDE is desirable
  • Basic knowledge of design patterns and XML

Course Outline

Introduction to the Remote Application Platform (RAP)

  • Examples of RAP applications
  • Advantages of using RAP: Java, components, multi-platform, multi-user
  • RAP Architecture: RWT, JFace, OSGi, Runtime, Workbench

Getting Started

  • Creating your first RAP application
  • IApplication as the main starting point
  • Launching and debugging the application

RWT Essentials: Widgets, Layouts, Dialogs

  • Important RWT concepts
  • Container widgets (Shell, Composite, Group)
  • Regular widgets (Label, Button, Text, …)
  • The UI thread
  • Dealing with long-running operations
  • Working with events and listeners
  • Layout managers
  • Fill-, Row-, Grid- and Form-Layouts
  • Working with standard Dialogs

JFace Viewers

  • Introduction to Structured Viewers
  • Content and Label providers
  • Working with Tables and the TableViewer
  • Working with Trees and the TreeViewer
  • Adding custom Images

Server-Side Scopes

  • Learn how RAP works internally
  • Requests and Responses
  • RAP Scopes (request-, session-, application-) and availability of data
  • Using the SessionSingletonBase to create session aware Singletons

Applications & Workbench

  • Understand basic Workbench concepts
  • Identify the major elements of a RAP application
  • Window, Menu, Page, Perspective, View, Editor
  • Configure the appearance and content of the application

Views & Perspectives

  • Introduction to Extensions / Extension Points
  • Implementing and contributing views
  • Implementing and contributing perspectives
  • Defining perspective layout and contents
  • Reusing UI elements with custom composites


  • Introduction to commands and handlers
  • Adding commands to menus, toolbars, and pop-ups
  • Integrating with the selection service
  • Conditional enablement and visibility
  • Assigning images to commands
  • Attaching key shortcuts to commands


  • Types of Editors (form editors, multi-page editors)
  • Differences between Views and Editors
  • Contributing and opening an editor
  • Implementing an editor
  • Managing the dirty state of an editor

OSGi Essentials

  • How do plug-ins work together?
  • Plug-in and package dependencies
  • Plug-in lifecycle
  • Versioning and naming conventions
  • Fragments

Defining Extension Points

  • Extension Points, Extensions, Contributions
  • Using the Extension Point Editor to define a Schema
  • Working with the Extension Registry object
  • Adding Extensions to a custom Extension Point

UI Customization: Branding, Theming, CSS

  • Using the branding extension point
  • Associating a theme, favicon, and URL with your application
  • Available RAP Themes
  • Altering your application’s appearance with CSS
  • Altering an existing theme

Deployment of RAP applications

  • Deployment options (Jetty vs WAR)
  • WAR Archive Creation
  • The WAR Product Tooling

RWT Custom Controls

  • Compound vs custom widgets
  • Writing your own RWT custom widget in Java
  • Registering your own JavaScript for client-side widget representation
  • Writing your own widget adapter to synchronize the server and client states of the widget

Internationalization (i18n)

  • Internationalization in RAP: one instance, many languages
  • Using the RWT.NLS class
  • Internationalizing Java and static files
  • Where to download translations for RAP

Tuning and Best Practices

  • Load Testing
  • Load Balancing
  • Performance Tuning
  • Unit and Functional Testing
  • Naming Conventions
  • Structuring Code

More Info


  • Course duration: 4 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.