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/
