Hi dev,

Almost three years ago, I did an experimentation with Eclipse RAP (Rich Ajax 
Platform) and tried to convert Directory Studio plugins to be used within a RAP 
application. 
At this time, RAP was in its early years (months) and the extensive use the 
Eclipse framework APIs we were doing in Studio's plugins prevented me to 
successfully run it in RAP.
Eventhough I managed to convert a large part Apache DS Configuration plugin. 
Screenshots available here [1].


This week I spent around half a day trying to do the same with the latest 
version of RAP, and I have to say I'm pretty pleased about the result so far... 
:)
RAP has evolved a lot in the last three years and a lot of 
Classes/Methods/Members are now supported in the RAP implementation (while they 
were not, three years ago).

In approximatively two hours, and a large cut in Studio's code (more and more 
classes are being supported, but there are still some that are not yet 
available), I was able to make Studio run within a RAP application in a web 
browser !  [2]
There still a lot of things broken, especially a nasty bug while trying to use 
UI thread to update widgets, but it works.
You can create a new connection and browse the tree...

I've created a SVN branch in order to share with you this experiment and, 
maybe, try to go forward... [3]

If you want to test it, you need to have an Eclipse for RCP/RAP developers 
distribution, with RAP target platform enabled.
I've not migrated all the project, but just the smallest set to get the LDAP 
Browser working.
Here's the list of project you need to import:
- common.core
- common.ui
- connection.core
- connection.ui
- ldapbrowser.common
- ldapbrowser.core
- ldapbrowser.ui
- ldifeditor
- ldifparser
- org.antlr.antlr
- org.apache.commons.codec
- org.apache.commons.collections
- org.apache.commons.io
- org.apache.commons.lang
- org.apache.commons.logging
- org.apache.directory.shared.asn1
- org.apache.directory.shared.dsmlparser
- org.apache.directory.shared.ldap
- org.apache.directory.shared.ldapconstants
- org.apache.httpcomponents.httpclient
- org.apache.httpcomponents.httpcore
- org.apache.logging.log4j
- org.apache.mina.core
- org.bouncycastle.bcprovjdk15
- org.dom4j.dom4j
- org.slf4j.api
- org.slf4j.log4j12
- org.xpp3.xpp3
- repository
- valueeditors

To launch Studio in RAP, you need to create a new "RAP Application" launch 
configuration.


I'm very happy about the results I've got so far, and I'm pretty confident 
about the RAP project now.
I really think a lot of things can now be implemented using RAP and our 
existing Eclipse plugins code base.

Especially, I'm thinking about a webapp, embedded with ApacheDS (and launched 
in Jetty), in which the user could view/edit the configuration, or simply 
browse the server tree...

New doors are now opened to make this project even better... :)


Regards,
Pierre-Arnaud


[1] - http://people.apache.org/~pamarcelot/ApacheDSConfInRAP/
[2] - http://people.apache.org/~pamarcelot/Studio_in_RAP/
[3] - https://svn.apache.org/repos/asf/directory/studio/branches/studio-rap/

Reply via email to