Author: Ralf Sternberg

This week, the third major version of RAP, the Eclipse Remote Application Platform, has been released. As a major release, RAP 3.0 cleaned up deprecated API, allowing us to change and to optimize internals. I'm happy to report that we achieved a significant performance boost compared to 2.3. Before I go into details, let's look at some results. Performance Tests To evaluate the performance of RAP 3.0,...

Read More

Today, the RAP project delivers the final milestone build on the way to RAP 3.0. With this new major release, we clean up deprecated API, include some new components, optimize performance and modernize the framework to make it ready for 2015. With the new support for re-parenting, RAP can now better support the E4 workbench renderer that uses this feature excessively. By removing support for antiquated browser...

Read More

When you test components of a RAP application, you have to simulate the environment that RAP UI code normally runs in. Thanks to a new API, this becomes easier in RAP 3.0. In an earlier post, my colleague Johannes explained how to write unit tests for RAP 2.x. This approach required more boilerplate code to set up and tear down the RAP environment in every single...

Read More

Warning! This article is outdated and might not represent the current state of Tabris.js. The CollectionView is one of the most powerful widgets on iOS. On Android, there's a similar widget called RecyclerView. Both widgets implement the same idea: they display a data set by creating only as many cells as fit on the screen and mapping the visible data items to these cells. The cells...

Read More

Often when I use SWT templates in a presentation, some people look amazed, so I thought it's worth sharing. If you write SWT code and don't know these templates yet, you may be wasting time typing the same code over and over again. Whenever you write an SWT snippet, you start with a Display, a Shell, and the SWT mainloop. That's this piece of code that...

Read More

If you still find yourself defining methods like this public String[] getParameters(); in an interface, you should think again. Arrays are not just old-fashioned, there are good reasons to avoid exposing them. In this article, I'll try to summarize the main drawbacks of using arrays in Java APIs. [ Looking for more tips on writing clean code? See our Software Craftsmanship page. | Polish up your coding with...

Read More

Yes, we love building modular web applications, if they just were easier to deploy on a server! Wrapping OSGi applications in WAR files, apparently still the most popular deployment option for RAP, results in a complicated setup: a web app containing an OSGi runtime together with all bundles, configuration, and a bridge servlet that delegates requests to the embedded OSGi - that's hard to build,...

Read More

Looking back on another eventful year for the RAP project, today we're proud to publish the results in a new release, RAP 2.2. Let's have a look at the highlights: Client-side Scripting We started off the work on RAP 2.2 with integrating the ClientScripting from the Incubator project into RWT. With this new feature, you can now attach scripted listeners to a widget. Those listeners are directly...

Read More

When you run JUnit tests that open windows and dialogs, all these windows pop up on your screen like fireworks, making your desktop unusable for minutes. If you're lucky enough to work on Linux, there's an easy way to get rid of all the flickering. You can simply redirect your UI tests onto a virtual screen. I was surprised how easy that is and thought it's...

Read More