Re-using / extending the GData code base?

3 views
Skip to first unread message

calarato

unread,
Aug 2, 2007, 8:07:16 PM8/2/07
to Google Data API
My company provides a Web service and does things in Java. We would
like to expose our service and user data in an Atom-GData fashion.

Naturally, we are looking for ways to be as standard as possible, as
well as to save coding and debugging time. I have looked for a Java
GData server, and not found anything viable. (Lucene GData Server
seems specialized and poorly supported.)

We know about REST and about using the ROME library for parsing and
generating feeds, so we could just code our own GData server. But I
noticed that one category of GData - the Picasa / photos part - is
exactly the functional area we want to start with.

That raises an intriguing idea that our servlets might simply move
data from our "pojo" model into the GData/Picasa client model, then
have the latter do all Atom feed generation and parsing for us. We
would be willing to adopt the built-in Picasa resource path structure,
from /user on down.

If it works, it seems like that would be the ultimate in GData /
Picasa compatibility - and a time-saver. But of course, we'd need to
know the answers to a lot of questions:

0) Is there really no viable Java GData server out there yet?

1) I can't be the first one to have had this idea. Is there a
discussion thread here (or someplace else online) where people have
explored this or done it before? I have done some searches and not
come across it yet.

2) If I tell the GData / Picasa client to work with a base URL of
"http://mycompany.com/my/toplevel-structure/{remaining picasa
structure, starting with /user} - Will it?
I mean, just as well as if I had told it "http://picasaweb.google.com/
data/feed/api/{remaining picasa structure, starting with /user}?
Or must I find some other means of correct URL generation /
substitution?

3) Are the Atom feeds generated by the GData and Picasa Java clients
just as good "coming out" as "going in"? In other words:
a) if a servlet (mis)uses the client library to spit out an Atom
feed back to a real GData / Picasa client, will that feed be complete
and robust enough to be perfectly understood by the real client as
"the real stuff"?
b) if a servlet (mis)uses the client library to read an Atom feed
sent in by a real GData / Picasa client, is the client library robust
enough to perfectly understand what it's taking in, so we can
ultimately copy from Picasa extension objects into our pojos?

4) The GData / Picasa code seems to be under an Apache 2.0 license
which would permit us to use it in such a fashion. Do I have that
right?

5) Will my company find it reasonably easy (assuming our technical
competence) to extend GData for future data types specific to our
company? (Probably means subclassing GData's BaseFeed, BaseEntry,
etc. classes.)

Thanks!

calarato

unread,
Aug 3, 2007, 2:53:29 AM8/3/07
to Google Data API
6) Which method - say, on Source, BaseFeed, GPhoto or a further
subclass - could my servlets use to set the <link rel="self"> and
<link rel="edit">?

(I have figured out <link rel="alternate">... it's
com.google.gdata.data.Source.addHtmlLink(). The others are more of a
mystery.)

Jeff Fisher (Google)

unread,
Aug 8, 2007, 5:39:08 PM8/8/07
to Google Data API
Hi calarato,

Sorry for the delay in responding to this. I am glad to hear you are
interested in adopting GData for your web service.

I'll respond to some of your points individually:

0) Correct, at present there is not a publicly available Java GData
server.

1) There has been past discussion about using some of the client
libraries to create feed providers, though to the best of my
knowledge, no one has implemented anything yet.

2) The Java client should work with any feed URI you provide. Let me
know if you find otherwise.

For the rest, I'll respond in a more general fashion. Our client
libraries are licensed under the Apache license, version 2.0. This
license enables you to create derivative works for both open source
and proprietary purposes as long as you follow the conditions of the
license.

You are free to start your own server implementation that uses the
GData protocol, though you may wish to contribute to an open source
project like Abdera [1]. From my understanding of Atom's standard
extension model, it should be relatively easy to create and extend
feed elements for your own purposes.

[1] http://incubator.apache.org/abdera/

Cheers,
-Jeff

Reply all
Reply to author
Forward
0 new messages