I could probably provide some input here, although I'm only
superficially familiar with the Shindig code as it stands today.  I
need just a little bit of context (apologies if you're just repeating
yourself).  From what I understand, the object-to-JSON code in Shindig
as it stands today leverages a "self-serialization" mechanism, right?
In other words, each object extends AbstractGadgetData and implements
its own toJSON() method, right?

And if I understand you correctly, you're looking to implement a JSON
serialization mechanism that is decoupled from the actual objects?  So
instead of

object.toJSON()

it would be something like

new JSONSerializer().serialize(object)

Correct?

-Ryan

On Tue, Jun 10, 2008 at 4:11 PM, Paul Lindner <[EMAIL PROTECTED]> wrote:
> It's not enunciate that provides the magic, it just uses xstream to do the
> dirty work:
>
> http://xstream.codehaus.org/json-tutorial.html
>
> You can either use jettison or your own driver.
>
> For the jaxb mappings you can add something like this to the top of the
> model classes:
> @XmlRootElement(
>            name = "person",
>            namespace = "http://opensocial.org/2008/opensocial";
>        )
>
> And add
>
> @XmlElement above each of the getters..
>
> For enums you need something like this:
> @XmlJavaTypeAdapter(Enum.DrinkerAdapter.class)
>
> and a corresponding adapter.
>
> sample here:
>
> http://www.hi5networks.com/platform/browser/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/Person.java
>
>
> On Jun 10, 2008, at 2:57 PM, Cassie wrote:
>
>> Hmm.. I just worry that it would turn out like abdera... not providing
>> enough benefit for the learning curve. I mean, the restful json spec is
>> really very simple, I'm hoping we can just whip it up :)
>>
>> I could be convinced otherwise though - do you have any code you can share
>> that uses enunciate?
>>
>> - Cassie
>>
>>
>> On Tue, Jun 10, 2008 at 2:52 PM, Paul Lindner <[EMAIL PROTECTED]> wrote:
>>
>>> If you're going down this route you might want to consider using JAXB
>>> annotations and a custom json converter.
>>>
>>> This type of situation is working quite well for us in the Enunicate
>>> toolkit and is already implemented there.  In fact we've added JAXB
>>> annotations to our internal shindig repo and it's worked out really,
>>> really
>>> well.
>>>
>>> As far as atom goes..  I have a set of classes that implement Atom in
>>> JAXB
>>> that I'd be happy to contribute.
>>>
>>> Check out http://enunciate.codehaus.org/
>>>
>>> Ryan, can you offer your thoughts?
>>>
>>>
>>>
>>> On Jun 10, 2008, at 2:44 PM, Cassie wrote:
>>>
>>> We tried to use abdera to implement the opensocial json restful format
>>>>
>>>> within Shindig.. and it didn't work out very well. The code is clunky,
>>>> overly complicated for simple json and is hard to come up to speed on.
>>>>
>>>> So... I am going to try an alternate implementation based on the
>>>> existing
>>>> older json wire format code. I was going to start coding something in a
>>>> separate dir so that none of the current code is disturbed. Hopefully,
>>>> in
>>>> the next couple days we will have a cleaner impl of the restful json
>>>> that
>>>> is
>>>> 90% the same as all of the current social code. (this means less
>>>> migration
>>>> for current social code users too, yea!)
>>>>
>>>> And as for atom... well, we can figure that out later :)
>>>>
>>>> Please let me know if you have any huge objections to this.
>>>> And of course, if it turns out to be worse than the abdera impl.. we can
>>>> always go back.
>>>>
>>>> - Cassie
>>>>
>>>
>>> Paul Lindner
>>> [EMAIL PROTECTED]
>>>
>>>
>>>
>>>
>
> Paul Lindner
> [EMAIL PROTECTED]
>
>
>
>

Reply via email to