Difference between revisions of "REST abstraction for ECF"

From Eclipsepedia

Jump to: navigation, search
Line 60: Line 60:
 
| August 4
 
| August 4
 
|align="left"| Round up the API and writing documentation  
 
|align="left"| Round up the API and writing documentation  
| [[Image:Progress.gif]] see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=281106 bug 281106]
+
| [[Image:Ok_green.gif]] see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=281106 bug 281106], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=284761 bug 284761], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=283053 bug 283053]
 
|- style="background:lightgrey;"  
 
|- style="background:lightgrey;"  
 
! RC2
 
! RC2
Line 85: Line 85:
 
     <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.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,org.eclipse.ecf.tests.remoteservice.rest"/>
     <project reference="1.0,:extssh:ecf1.osuosl.org:/home/cvs/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest.resource.json,org.eclipse.ecf.remoteservice.rest.resource.json"/>
+
     <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.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>
 
   </provider>
 
</psf>
 
</psf>
Line 98: Line 101:
 
     <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.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,org.eclipse.ecf.tests.remoteservice.rest"/>
     <project reference="1.0,:pserver:ecf1.osuosl.org:/ecf,rest/bundles/org.eclipse.ecf.remoteservice.rest.resource.json,org.eclipse.ecf.remoteservice.rest.resource.json"/>
+
     <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.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>
 
   </provider>
 
</psf>
 
</psf>

Revision as of 08:15, 26 July 2009

Project Lead: Holger Staudacher (IRC: staudi)

Mentor: Scott Lewis, Marcelo Mayworm

This project is part of the Google Summer of Code 2009

Contents

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 Glass.gif
Pencils down August 11 - Glass.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.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.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

TBD

New ideas

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

Links