Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[e4-dev] e4 and RAP? Yes!

Hi all,

with Galileo out in the wild, the RAP team did some experiments how RAP and e4 could collaborate. While most of the people think about the SWT/BE way (compiling the code to JS/Flex/etc), the approach of RAP is a little different. Instead of having a full-blown client we only serve a thing client and do most of the work on the server.
This really helps to reuse everything we have in the eclipse ecosystem.
If you never worked with RAP, you should take a look here: http://eclipse.org/rap/gettingstarted.php

One of the things we worked on in the last couple of week was to see how we can get e4 running on RAP. Talking about single sourcing, we did a little experiment: we changed some of our APIs to fit some more use cases as we currently offer. Why didn't we provide this initially? Because some of these things are still in early stage of development or even experimental.
Let me give you an example:
Today RAP 1.2 (Galileo) has all the SWT resources covered behind a factory so we can share the instances across all user sessions (means: no ctors and no dispose). As this fits perfectly into the idea of RAP we see the downside that it's now more complicated to single source existing applications.

That's why we introduced a new e4_experimental branch over at RAP to evaluate such ideas and make single sourcing even more feasible. With this branch it is possible to run the e4 demos AS IS! No need to touch the code.

How to do it? Check out the wiki page:
http://wiki.eclipse.org/E4/RAP_Integration/Experimental

Regarding the technical details:
Some of the things we still have to struggle with:

* Require-Bundle usage instead of Import-Packages - this is an old one but still on the plate. Currently we use bundle reexport (this is temporary) until we can come up with a proper solution to this problem. As example, we introduced an empty plugin (eg. org.eclipse.swt) which just reexports the API of org.eclipse.rwt. But this is definitely not the way to go.

* Workspace is currently shared across all user sessions - but I think bug 245399 already covers this

* Lot of painting: for the branch we introduced a small server-side GC implementation. Client-side drawing is also in the works (see bug 277671).

Some time ago we already collected some of the other major work areas (http://wiki.eclipse.org/E4/RAP_Integration) and we should strive to meet the goals in order to bring RCP to the web.

Really looking forward to hear from all interested and sceptical parties!

Best regards
 Ben



Back to the top