Dear Thomas and Fabio,
Thanks a lot for your prompt replies and they helped a lot to understand
the project.
When I took a first thought about how to achieve RESTification, one
thing popped out of my head is to add an abstract communication layer to
XEclipse without touching its logic and user interface implementation.
Considering the fact that XEclipse itself will be under major code
refactoring in the project of "XEclipse editors improvement" as well,
adding an abstract layer will make the two projects work in parallel
without too much conflict.
From Fabio's email, this abstract communication layer is already
available for XEclipse, but it is not RESTful yet. Therefore, I will
take a deeper look at the source code of XEclipse with two questions in
mind:
1. figure out a way to refactor without affecting the logic and UI layer
of XEclipse
2. provide more support for logic layer, e.g., lazy initialization/retrieval
Best regards
Jun Han
On 03/24/2011 06:33 AM, Fabio Mancinelli wrote:
Hi Jun
On Wed, Mar 23, 2011 at 6:35 PM, Jun Han<jun.han37(a)gmail.com> wrote:
Hi, Everyone,
I am going to apply for student developer in GSoC 2011 and am interested
in one of proposed XWiki projects, XEclipse "RESTification".
Glad to hear that you are interested in this project.
Thomas has already replied to your questions but I will add some bits
as one of the mentors of the project.
Currently I am a fourth year Ph.D. student in the
department of Computer
Science, University of Georgia, USA. My research focuses on
Simulation/Modelling and Web services, and applies them to facilitate
bioinformatics research.
My strengths are the following:
(1). 6-year of Java programming experience including both desktop and
web development and able to perform full lifecyle software development.
(2). developed a SOAP Web service management system using Eclipse RCP
and SWT
Very good.
(3). developed REST-ful Web services and
integrated SOAP Web services
from other collaborators (in German and Japan) to implement integrated
scientific workflow following Web 2.0 standards
Very good.
After reading through the descriptions of
proposed projects, XEclipse
"RESTification" is of great interest to me. This project involves
communication via SOAP and REST-ful Web services and is developed in
Eclipse SWT platform, therefore, I might be a potential match for this
project based on the skill set.
I have several questions regarding the requirement:
(1) what is target development platform?
The current XEclipse requires Eclipse Ganymede 3.4 and the most
recent release is Eclipse 3.6 and 3.7. Is there any plan to support them?
The "requires Ganymede" is a leftover... When XEclipse was actively
developed the most stable Eclipse version was 3.3 (hence the "require
3.4")
I didn't try but I think that XEclipse should run without any problem
on 3.7 right now.
Anyway the idea is to support the latest version of Eclipse, i.e. 3.7
(2) What is the current status of XWiki
communication layer?
From what I understand, SOAP + XML play a main role in the current
system. Now XWiki is turning to REST eventually.
I read some discussions on Mar 11 2011 about REST API in dev mail
list, which mentioned that REST API is not there yet. Does this mean
that the whole REST communication layer is not available yet?
Not quite right.
XWiki supports XMLRPC and REST. AFAIK, We don't have any "SOAPy" web
services.
I would say that XMLRPC is deprecated because it has several problems
and limitations.
So the RESTful API is definitely the preferred mechanism for
interacting with XWiki in a "machine oriented" way.
Thomas already told you where to find information about this API (code
https://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rest/
and documentation
http://platform.xwiki.org/xwiki/bin/view/Features/XWikiRESTfulAPI)
(3) What extent of RESTification we are going to
achieve for XEclipse?
This is closely related to question (2). If REST API is available,
the XEclipse RESTification will only need to construct the REST-ful
request (i.e., @GET /rest/{space}/{page}) and parse result from server.
If not, more work might be involved.
Indeed whay you say is part of the job.
However XEclipse has an "abstraction layer" for the communication.
This abstraction layer provides interfaces for retrievening and
manipulating XWiki objects.
Now the main goals of the project is to provide an HTTP-based
implementation of this layer so that XEclipse will be able to
communicate to with XWiki using REST.
This is of course the tip of the iceberg :)
Actually while "RESTifying" this we should also refactor where
necessary and improve things.
For example, one thing that comes to my mind is to enable lazy
retrieval everywhere: we don't want to load in the interface thousands
of items using a single request!
I hope that this answers your questions and if you have more don't
hesitate to ask!
Cheers,
Fabio
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs