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

RAP für Java Entwickler – 4 Tage
Karlsruhe: 11-14 Sep

RAP für Java Entwickler – 4 Tage
Karlsruhe: 4-7 Dec

Course Goals, Audience and Prerequisites

Course Goals

  • Understand the fundamental concepts of Eclipse and the Rich Ajax 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 Rich Ajax 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 Rich Ajax 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 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.