|[eclipse-incubator-e4-dev] Bringing e4 to the Web/ RAP integration/ Multi User Support|
most of you probably know that the RAP project provides the 'WebWorkbench' by copying the original platform code and change those things that don't work in RAP. Unfortunately this is the worst thinkable way of code-reuse. Adopting to code changes of the original code is error-prone and time-consuming.
As it is intented to integrate RAP into e4, we've been marking the code changes with 'RAP' markers so that we are now able to identify what we've done so far to get the code working within RAP. Looking at the bundles org.eclipse.rap.jface, org.eclipse.rap.jface.databinding, org.eclipse.rap.ui, org.eclipse.rap.ui.forms, org.eclipse.rap.ui.views, org.eclipse.rap.ui.workbench we have about 1900 markers...
What I've seen so far, none of those markers point to code that can simply be merged with the origninal code. To explain this a little bit more in detail I put up a list that categorizes the main types of problems (I've created wiki pages for each of the topics. This way it may be easier to discuss the individual issues in individual mail threads - as opposed to everybody responding to one mail with lots of issues):
1) RWT misses SWT-API (http://wiki.eclipse.org/E4/RAP_Integration:_RWT_misses_SWT-API)
2) Singletons (http://wiki.eclipse.org/E4/RAP_Integration:_Singletons)
3) NLS (http://wiki.eclipse.org/E4/RAP_Integration:_NLS)
4) Bundle initializations (http://wiki.eclipse.org/E4/RAP_Integration:_Bundle_Initialization)
5) Jobs (http://wiki.eclipse.org/E4/RAP_Integration:_Jobs)
6) Cleanup on Session Shutdown (http://wiki.eclipse.org/E4/RAP_Integration:_CleanupOnSessionTimeout)
At least the items 2,3 and 5 are consequences of the multi user support and therefore could be of common interest heading for e4. So maybe this is a good starting point for a discussion of how to solve such problems. E.g. replacing Singletons with the SessionSingletonBase approach from RWT (see below) is of course RAP specific and doesn't work as a generic solution.