[xwiki-devs] [GSoC 2011] Self Introduction and Interested Project

Eduard Moraru eduard.moraru at xwiki.com
Thu Mar 24 15:50:51 UTC 2011


Hi Jun,

Glad to hear you're interested in XEclipse.

On 03/24/2011 04:47 PM, Jun Han wrote:
> 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.
Given the fact that the two projects don`t really affect one another, 
you are pretty much free to experiment.

Besides that, you will be working on a separate fork of the XEclipse 
project (most likely in the sandbox svn directory 
http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/ ) which you will 
merge back when you are finished.
>    From Fabio's email, this abstract communication layer is already
> available for XEclipse,
Yes. You can find the interface and the two (local-Filesystem and 
remote-XML-RPC) implementations here 
http://svn.xwiki.org/svnroot/xwiki/xeclipse/trunk/plugins/org.xwiki.eclipse.core/src/main/java/org/xwiki/eclipse/core/storage/
>   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
You could start by providing an implementation equivalent to 
RemoteXWikiDataStorage.java but which uses REST instead of XML-RPC, then 
work your way up by extending the IDataStorage.java interface with new 
functionality and provide the equivalent UI.
> 2. provide more support for logic layer, e.g., lazy initialization/retrieval
>
> Best regards
> Jun Han
Feel free to ask if you have any more questions.

Good luck,
Eduard
> 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 at 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 at xwiki.org
>> http://lists.xwiki.org/mailman/listinfo/devs
> _______________________________________________
> devs mailing list
> devs at xwiki.org
> http://lists.xwiki.org/mailman/listinfo/devs
>




More information about the devs mailing list