RAP for RCP Developers

Eastern Timezone, North America
Monday, May 14, 2012

RAP for RCP Developers
Monday, May 14, 2012 10:00 AM -
Tuesday, May 15, 2012 6:00 PM (Eastern Time)

Virtual Class
Eastern Timezone, North America


The Rich Ajax Platform (RAP) is "Eclipse RCP for the web". It provides a web-enabled implementation of SWT, JFace and the Eclipse Workbench. RAP enables Eclipse RCP developers to build rich browser-based applications written in Java, without having to learn a big stack of new technologies.

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 veteran Eclipse developers, with years of product development experience, teach you everything you need to develop RAP-based web applications. Along the way they provide deep insights and give a special focus to techniques for porting existing RCP applications to RAP and single-sourcing -- creating a code base 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 focused 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.

Course Format

  • Duration: 2 days
  • 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

Course Fees

  • Early Bird - USD 1,350 - to receive this rate register and pay 6 weeks before the start date
  • Regular - USD 1,500
  • 10% group discount for registering 3 or more participants


The trainer for this class is Mr. Elias Volanakis.

Elias is a Technical Lead at EclipseSource. He has been writing Eclipse-based software since 2004 and is helping software professionals make the most out of Eclipse in their own development efforts. Elias is working on Eclipse as a committer for the Riena (business-friendly RCP) and RAP (RCP for the web) projects. He is sharing his knowledge through training, conference talks and blog posts.

Feedback from course participants:
"Elias did an excellent job covering many topics in a short time-frame. He also was very helpful in answering all questions in detail. I learned a lot from this training. He also customized parts of the course at our request."
"It was a really good class. It really helped that it was very hands-on."
"I was impressed with the experience and the instruction. Elias was great and very open to dialog and questions."

Course Goals

  • Understand the fundamental concepts of Eclipse and the Rich Ajax 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 code base for RAP and RCP applications

Target Audience

  • Experienced Eclipse RCP 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


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

Course Outline

Introduction to RAP
  • Brief history of RAP
  • Comparison of RAP to RCP
  • Single-Sourcing
  • Usage options: minimal or full stack
  • Base technologies: Equinox, Servlets
Getting Started
  • RAP Tooling & Target Platform
  • IApplication / IEntryPoint as the main RAP starting points
  • Creating a minimal RAP application
  • Launching the application
Request Life Cycle
  • How does RAP work internally?
  • Phases of Request / Response processing
  • Life Cycle Adapters (LCAs)
Threading Model
  • Apartment Threading
  • Thread model differences between SWT and RAP
  • Writing background processes that update the UI
  • Using Service Handlers
Single Sourcing
  • Single Sourcing: writing a client / web application from a single code base
  • Where to expect differences between RCP and RAP
  • Dealing differences in APIs and dependencies
  • Hiding implementation differences with Fragments
  • Single-Sourcing the RCP Mail application
Server-Side Scopes
  • Learn about the different scopes (request-, session-, application-scope) available within a RAP application
  • Using the RWT class to get access to life cycle management, session- and service-stores
  • Storing data beyond the lifetime of a session with SettingStores
  • Creating session aware Singletons
Internationalization (i18n)
  • RCP vs RAP-style internationalization
  • How to use RWT.NLS
  • Multi-language support for extensions
Additional RAP Topics
  • Enabling the Back / Forward Buttons (BrowserHistory)
  • Deep links and URL rewriting
  • Tweaking Session Management and Timeouts
  • Enabling tabbed browsing for RAP applications
Custom Widgets
  • Example Custom Widgets
  • Creating Custom Widgets in SWT
  • Writing your own RWT custom widget in Java
  • Registering your own JavaScript for client-side widget representation
  • Writing your own LifeCycleAdapter to synchronize the server and client states of the widget
  • Using Branding to customize the URL, default style and other aspects of your application
  • Styling API (interaction design)
  • Example Styles
  • Contributing your own Branding
RAP Theming
  • Changing the default colors, gradients, borders, images, etc.
  • Using Widget- / Style- / State- / Variant-specific CSS elements
  • Finding out what theming properties are supported by each widget
  • Extending the default RAP themes or contributing a custom theme
  • WAR deployment
  • OSGi-based deployment
  • Comparison of deployment options
  • Using the WAR Export tooling (new)
RAP Load Testing
  • RAP load testing with JMeter
  • Recording and playing back user interactions
  • Optimizations and Pitfalls
  • Load balancing


  • This course is held in English. Other languages are available on request.

Contact Information

Payment Instructions

  • You may pay online with a credit or debit card (Visa or MasterCard).
© 2018
Quick, easy and affordable online event registration and event management software for all event sizes.