Twitter Logo Follow us on Twitter
Project Information About this project

RAP 3.0 M7 - New and Noteworthy

Here's a list of the most noteworthy things in the RAP 3.0 M7 milestone build which is available for download since May 08, 2015.

Re-Parenting Support

The method Control.setParent() is now fully implemented and will move a control from one parent to another. To indicate that the re-parenting was successful, the method will return true. We implemented re-parenting in order to better support the E4 UI.

Be aware you must not try to replace the parent of a control that is attached to another widget using a setControl() method (e.g. a CoolItem, an ExpandItem, or a ScrolledComposite). Those cases are neither supported by SWT nor by RAP.

New client service StartupParameters

In RAP 2.x, you could access URL parameters by calling RWT.getRequest().getParameter(name). The problem with this approach was that it only worked in the first request. Moreover, RWT.getRequest() returns the actual XHR request, not the request that returned the HTML page. That's why using this method in application code is not recommended.

Now there is a client service named StartupParameters that provides access to those startup parameters. Since this service interface is also implemented by AbstractEntryPoint, you can access the methods getParameter(), getParameterNames(), and getParameterValues() directly in your entrypoint:

public class MyEntryPoint extends AbstractEntryPoint {

  @Override
  protected void createContents(Composite parent) {
    String foo = getParameter("foo");
    ...
  

Move to Java 7

As many other Eclipse projects, we recently decided to raise the minimal execution environment to Java 7. Since Jetty 9 and even some parts of Equinox now depend on Java 7, it became almost impossible to run and test RAP with Java 5. Moving to Java 7 makes our life easier and allows us to make use of some new features. With modern JREs being available even for embedded platforms, so we think that we won't exclude anyone by this move.

The Bundle-RequiredExecutionEnvironment (BREE) of all bundles has been updated to JavaSE-1.7.

Goodbye quirksmode!

RAP used to enable the so-called quirksmode in HTML in order to avoid glitches in old IE versions. With the end of support for antique browsers, RAP now uses the HTML5 <!DOCTYPE html> declaration that enables standard mode in all browsers.

Performance optimizations

We started to work on a couple of performance optimizations, namely by reducing the number of short living objects created during request processing. This reduces the load by the garbage collection. Moreover, we reworked the session initialization and removed the need for a transient UI session when delivering the HTML, which also removes some load from the server. Some more optimizations are planned for 3.0.

Bugfixes

This list shows all bugs that have been fixed for this milestone build.

Previous Builds

The above features are just the ones that are new since the last milestone build. Summaries for earlier builds: