Jump to: navigation, search

Difference between revisions of "REST abstraction for ECF"

m
Line 125: Line 125:
  
 
[[Category:SOC]]
 
[[Category:SOC]]
 +
[[Category:Draft Documentation]]

Revision as of 15:47, 2 November 2009

Project Lead: Holger Staudacher (IRC: staudi)

Mentor: Scott Lewis, Marcelo Mayworm

This project is part of the Google Summer of Code 2009

Abstract

Many service providers using a REST based API to offer developers access to their services, i.e. Twitter, Facebook and so on. The result of this is that some third parties provide Java based libraries, which covers this API's. The ECF team played a little bit with the Twitter API and use therefore a library called Twitter4J.
The disadvantage of this technique is a dependency to the third parties library. This means an ECF container based on such a library is dependent on the diversity of this. To decouple these dependencies an own ECF based REST abstraction should be created within this GSoC project.

Primary goals

  • A full working API for the REST client side to communicate to any RESTful web service.

Additional goals

  • Upgrading the Twitter Provider to use this REST API

Legend

Glass.gif Needs some investigation/research

Progress.gif Work in progress

Ok green.gif Bug fixed / Feature added

Timeline

Here is a complete list of the milestones and release candidates planned for this plugin.

Milestone Date Planned items status
M1 June 16 Implementation of the ECF Remote Services API for REST Ok green.gif see bug 275723
M2 June 28 Architecture for REST webservices (POST, GET, UPDATE, DELETE) Ok green.gif see bug 281101
M3 July 15 Couple the abstraction layer with the remote service API implementation Ok green.gif
M4 July 26 The resource representation concept Ok green.gif see bug 281097
M5 July 31 Implementation of some resource representations (XML, JSON and so on) Ok green.gif see bug 281102, bug 282433 and bug 281104
RC1 August 4 Round up the API and writing documentation Ok green.gif see bug 281106, bug 284761, bug 283053
RC2 August 8 Fix some bugs Ok green.gif see query
Pencils down August 16 Make the contribution ready for ECF Ok green.gif

Community Involvement

Getting the source

See the appropriate project set below.

Project set file for ECF committers:

<?xml version="1.0" encoding="UTF-8"?>
<psf version="2.0">
  <provider id="org.eclipse.team.cvs.core.cvsnature">
    <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest,org.eclipse.ecf.remoteservice.rest"/>
    <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.eclipse.ecf.tests.remoteservice.rest,org.eclipse.ecf.tests.remoteservice.rest"/>
    <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.eclipse.ecf.tests.remoteservice.rest.resources,org.eclipse.ecf.tests.remoteservice.rest.resources"/>
    <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest.resource.json.jackson,org.eclipse.ecf.remoteservice.rest.resource.json.jackson"/>
    <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest.resource.json.org,org.eclipse.ecf.remoteservice.rest.resource.json.org"/>
    <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest.resource.rss,org.eclipse.ecf.remoteservice.rest.resource.rss"/>
    <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.json,org.json"/>
    <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.codehaus.jackson, org.codehaus.jackson"/>
  </provider>
</psf>

Project set file for anonymous CVS access:

<?xml version="1.0" encoding="UTF-8"?>
<psf version="2.0">
  <provider id="org.eclipse.team.cvs.core.cvsnature">
    <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest,org.eclipse.ecf.remoteservice.rest"/>
    <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.eclipse.ecf.tests.remoteservice.rest,org.eclipse.ecf.tests.remoteservice.rest"/>
    <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.eclipse.ecf.tests.remoteservice.rest.resources,org.eclipse.ecf.tests.remoteservice.rest.resources"/>
    <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest.resource.json.jackson,org.eclipse.ecf.remoteservice.rest.resource.json.jackson"/>
    <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest.resource.json.org,org.eclipse.ecf.remoteservice.rest.resource.json.org"/>
    <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest.resource.rss,org.eclipse.ecf.remoteservice.rest.resource.rss"/>
    <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.json,org.json"/>
    <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.codehaus.jackson, org.codehaus.jackson"/>
  </provider>
</psf>

When the project's finished the code will be published on the appropriate Google Code Site.

Open issues

DS for ResourceRepresentations (see bug 285294)

New ideas

Do you have a great idea for the REST abstraction? Just open a new feature request.

Links