RAP for RCP Developers

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 load 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 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 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 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

Goals, Audience, Prerequisites

Course Goals 

  • Understand the fundamental concepts of the Eclipse 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

Prerequisites

  • A good understanding of RCP concepts
  • Experience of 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 with 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

Branding

  • 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

Deployment

  • 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

More Info

Format

  • 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

Languages

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