Jump to: navigation, search

Difference between revisions of "REST abstraction for ECF"

Redirect page
m
(Merged and Moved)
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
Project Lead: Holger Staudacher (IRC: staudi)
+
#REDIRECT [[ECF/REST abstraction]]
 
+
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. [http://apiwiki.twitter.com/ Twitter], [http://developers.facebook.com/?ref=pf Facebook] and so on. The result of this is that some third parties provide Java based libraries, which covers this API's. The [[Eclipse_Communication_Framework_Project|ECF]] team played a little bit with the Twitter API and use therefore a library called [http://yusuke.homeip.net/twitter4j/en/index.html Twitter4J]. <br>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 [http://socghop.appspot.com/ 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
+
 
+
<div style="clear: right; border: solid #aaa 1px; margin: 0 0 1em 1em; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; text-align: left; float: right;">
+
'''Legend'''
+
 
+
[[Image:Glass.gif]] Needs some investigation/research
+
 
+
[[Image:Progress.gif]] Work in progress
+
 
+
[[Image:Ok_green.gif]] Bug fixed / Feature added
+
</div>
+
 
+
== Timeline ==
+
Here is a complete list of the milestones and release candidates planned for this plugin.
+
 
+
{| class="wikitable" style="text-align:center"
+
|- style="background:#efefef;"
+
! Milestone !! Date !! Planned items !! status
+
|- style="background:lightgrey;"
+
! M1
+
| June 16
+
|align="left"| Implementation of the ECF Remote Services API for REST
+
| [[Image:Ok_green.gif]] see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=275723 bug 275723]
+
|- style="background:lightgrey;"
+
! M2
+
| June 28
+
|align="left"| Architecture for REST webservices (POST, GET, UPDATE, DELETE)
+
| [[Image:Ok_green.gif]] see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=281101 bug 281101]
+
|- style="background:lightgrey;"
+
! M3
+
| July 15
+
|align="left"| Couple the abstraction layer with the remote service API implementation
+
| [[Image:Ok_green.gif]]
+
|- style="background:lightgrey;"
+
! M4
+
| July 26
+
|align="left"| The resource representation concept
+
| [[Image:Ok_green.gif]] see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=281097 bug 281097]
+
|- style="background:lightgrey;"
+
! M5
+
| July 31
+
|align="left"| Implementation of some resource representations (XML, JSON and so on)
+
| [[Image:Ok_green.gif]] see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=281102 bug 281102], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=282433 bug 282433] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=281104 bug 281104]
+
|- style="background:lightgrey;"
+
! RC1
+
| August 4
+
|align="left"| Round up the API and writing documentation
+
| [[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;"
+
! RC2
+
| August 8
+
|align="left"| Fix some bugs
+
| [[Image:Ok_green.gif]] see [https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=%5Brest%5D&product=ECF&long_desc_type=allwordssubstr&long_desc=&order=Importance query]
+
|- style="background:lightgrey;"
+
! Pencils down
+
| August 16
+
|align="left"| Make the contribution ready for ECF
+
| [[Image:Ok_green.gif]]
+
|}
+
 
+
== Community Involvement ==
+
 
+
=== Getting the source ===
+
See the appropriate project set below.
+
 
+
Project set file for ECF committers:
+
<pre>
+
<?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>
+
</pre>
+
 
+
Project set file for anonymous CVS access:
+
<pre>
+
<?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>
+
</pre>
+
 
+
When the project's finished the code will be published on the appropriate [http://code.google.com/p/restecf/ Google Code Site].
+
 
+
=== Open issues ===
+
DS for ResourceRepresentations (see bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=285294 285294])
+
 
+
=== New ideas ===
+
Do you have a great idea for the REST abstraction? Just open a [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=ECF new feature request].
+
 
+
=== Links ===
+
*[http://wiki.eclipse.org/ECF/REST_abstraction Proposal]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=275722 REST abstraction for ECF Bug]
+
 
+
[[Category:SOC]]
+

Latest revision as of 08:59, 22 December 2010