I guess the Invoker is not available yet, but I committed Douglas last
patch in java/modules/binding-gdata. I'll try to take a look at this
tomorrow as well, this should be similar to what we had to do for
binding-atom-abdera.

On Tue, Jun 17, 2008 at 8:16 PM, Raymond Feng <[EMAIL PROTECTED]> wrote:
> Hi,
>
> The main issue here is that we don't know how to handle the databinding for
> the GData. My wide guess is that the pass-by-value interceptor is triggered
> to copy the data to enforce the PBV semantics for the remotable interface.
>
> Here are a few things you can do to avoid this:
>
> 1) Have the GDataBinding invoker to implement DataExchangeSemantics SPI and
> return true for the allowsPassByReference() method.
> 2) Add a new databinding for GData so that Tuscany knows about GData and
> handles the copy, marshal/unmarshal of the data correctly.
>
> Please point me to the code so that I can give you more suggestions.
>
> Thanks,
> Raymond
>
> --------------------------------------------------
> From: "Douglas Leite" <[EMAIL PROTECTED]>
> Sent: Tuesday, June 17, 2008 7:02 PM
> To: "Tuscany-Developers" <[email protected]>
> Subject: [GSOC] Issues with JAXB at GData binding
>
>> I have started to implement the invokers at binding-gdata module. Maybe,
>> the
>> simplest operation is retrieve a feed from an specific URI. So, I have
>> chosen the getFeed() method as the first one to be implemented.
>>
>> Trying to think as simple as possible, and using the gdata java client,
>> the
>> method follow these steps:
>>
>> 1) Set the user credentials;
>> 2) Get the feed at an URI as a com.google.gdata.data.Feed object;
>> 3) Pass the feed object to the body of the message object
>> (org.apache.tuscany.sca.invocation.Message);
>>
>> The following piece of code demonstrate it:
>> *
>>    //FIXME - Get credentials automatically
>>    myService.setUserCredentials("[EMAIL PROTECTED]", "gsoc2008");
>>
>>    Feed feed = (Feed) myService.getFeed(new URL(uri), Feed.class);
>>
>>    msg.setBody(feed);*
>>
>> However, I am having some issues with marshalling/unmarshalling the Feed
>> object while passing it to the message body. I got these output:
>>
>> Exception in thread "main" java.lang.IllegalArgumentException:
>> com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 3 counts of
>> IllegalAnnotationExceptions
>> com.google.gdata.data.BaseFeed does not have a no-arg default constructor.
>>   this problem is related to the following location:
>>       at com.google.gdata.data.BaseFeed
>>       at com.google.gdata.data.Feed
>> com.google.gdata.client.Service$GDataRequestFactory is an interface, and
>> JAXB can't handle interfaces.
>>   this problem is related to the following location:
>>       at com.google.gdata.client.Service$GDataRequestFactory
>>       at public com.google.gdata.client.Service$GDataRequestFactory
>> com.google.gdata.client.Service.getRequestFactory()
>>       at com.google.gdata.client.Service
>>       at public com.google.gdata.client.Service
>> com.google.gdata.data.BaseEntry.getService()
>>       at com.google.gdata.data.BaseEntry
>>       at public java.util.List com.google.gdata.data.BaseFeed.getEntries()
>>       at com.google.gdata.data.BaseFeed
>>       at com.google.gdata.data.Feed
>> com.google.gdata.client.Service$GDataRequestFactory does not have a no-arg
>> default constructor.
>>   this problem is related to the following location:
>>       at com.google.gdata.client.Service$GDataRequestFactory
>>       at public com.google.gdata.client.Service$GDataRequestFactory
>> com.google.gdata.client.Service.getRequestFactory()
>>       at com.google.gdata.client.Service
>>       at public com.google.gdata.client.Service
>> com.google.gdata.data.BaseEntry.getService()
>>       at com.google.gdata.data.BaseEntry
>>       at public java.util.List com.google.gdata.data.BaseFeed.getEntries()
>>       at com.google.gdata.data.BaseFeed
>>       at com.google.gdata.data.Feed
>>       . . .
>>
>> BaseFeed is a super type of Feed, and although it does not have a no-arg
>> default constructor, the Feed has one.
>>
>> Thoughts?
>>
>> --
>> Douglas Siqueira Leite
>> Computer Science Master's degree student of University of Campinas
>> (Unicamp)
>>
>



-- 
Luciano Resende
Apache Tuscany Committer
http://people.apache.org/~lresende
http://lresende.blogspot.com/

Reply via email to