Hi Louis, Could you please look into this change?
Thanks, Sachin On Fri, May 22, 2009 at 11:14 PM, Sachin Shenoy <[email protected]> wrote: > I have uploaded a new patch which does the suggested introspection. > Sachin > > > On Thu, May 21, 2009 at 9:41 PM, Louis Ryan <[email protected]> wrote: > >> All of these are valid approaches. We already introspect the >> server-endpoint >> for the JSON-RPC methods which gives a nice level of decoupling between >> gadget server and API server. Having the same in the client is certainly >> useful for gadget renderers that must interoperate with many containers. >> >> On Wed, May 20, 2009 at 10:41 AM, Sachin Shenoy <[email protected]> >> wrote: >> >> > I would love to have a decoupled deployment. One thing that can be done >> is >> > to do server side introspection. Let the gadget renderer introspect the >> > mediated methods much like the normal methods via "mediatedMethods" >> call? >> > Sachin >> > >> > PS. >> > Going a step further (may be a bit too further), an endpoint could >> support >> > a >> > "getConfig" method. Gadget server could query that to get the json >> config >> > that would be merged with the static configuration before inserting it >> into >> > the iframe. >> > >> > >> > On Wed, May 20, 2009 at 10:24 PM, Louis Ryan <[email protected]> wrote: >> > >> > > In many ways the binding mechanism is an implementation detail. The >> > > information could just as easily go in container config. The main >> point >> > is >> > > that the osapi code treats gadgets-rpc as just a transport for >> JSON-RPC >> > > style calls and the interfaces, packaging and format of the methods >> > aligns >> > > closely with that for the dat-backed APIs. One advantage of following >> > this >> > > design methodology is that it would easily allow a container to >> implement >> > a >> > > fully mediated API. The concerns with the late binding that you list >> are >> > > valid and should be weighed against the advantages of a decoupled >> > > deployment >> > > process between the container and the gadget server. >> > > >> > > On Tue, May 19, 2009 at 11:52 PM, Sachin Shenoy <[email protected]> >> > > wrote: >> > > >> > > > This would change the way we get the list of mediated methods but I >> > guess >> > > > other stuff remains same? >> > > > Currently we are getting this list via configuration, but you >> suggest >> > it >> > > is >> > > > better to get it by introspection with the container. With client >> side >> > > > introspection I see these issues, >> > > > >> > > > 1. Race condition. I think this can be solvable, by delaying the >> actual >> > > > call >> > > > of gadgets.util.runOnLoadHandlers. >> > > > 2. We force the containers to implement the introspection method, a >> > > > container failing to do so would cause bad things (we would wait >> > > > indefinitely for the callback). >> > > > 3. Any delay caused by the introspection(?) >> > > > >> > > > Sachin >> > > > >> > > > On Wed, May 20, 2009 at 5:38 AM, Louis Ryan <[email protected]> >> wrote: >> > > > >> > > > > Rather than doing this we should do something akin to what we've >> done >> > > for >> > > > > the JSON-RPC introspection support in osapi. i.e >> > > > > >> > > > > 1. osapi makes a gadgets.rpc to container asking for the supported >> > > > methods. >> > > > > 2. Container returns that list in the format used for JSON-RPC's >> > > > > system.listMethod >> > > > > 3. osapi binds the returned services in the same manner it >> supports >> > it >> > > > for >> > > > > JSON-RPC, erasing the protocol backed ones if a name collision >> occurs >> > > > > 4. osapi will now dispatch those api calls of gadgets.rpc >> > > > > >> > > > > >> > > > > On Tue, May 19, 2009 at 12:36 PM, Sachin Shenoy (JIRA) < >> > > [email protected] >> > > > > >wrote: >> > > > > >> > > > > > osapi (oslite) should support user mediated requests. >> > > > > > ----------------------------------------------------- >> > > > > > >> > > > > > Key: SHINDIG-1065 >> > > > > > URL: >> > > > https://issues.apache.org/jira/browse/SHINDIG-1065 >> > > > > > Project: Shindig >> > > > > > Issue Type: New Feature >> > > > > > Reporter: Sachin Shenoy >> > > > > > >> > > > > > >> > > > > > According to osapi spec any request can be user mediated. (there >> is >> > > no >> > > > > more >> > > > > > osapi.ui.*). Shindig to support mechanism for user mediated >> > requests. >> > > > > > >> > > > > > Changes: >> > > > > > - Containers can via configuration let shindig JS know which >> > requests >> > > > it >> > > > > > want to be user mediated. >> > > > > > - Predefined hooks are used to pass the request to the container >> > and >> > > > get >> > > > > > the response back. >> > > > > > - A new type of request, osapi.newUiRequest is defined to handle >> > user >> > > > > > mediated case. Even though this is in global space, it need not >> be >> > > > > visible >> > > > > > to the developer directly. Developer uses the osapi as today. >> > > > > > - batch.js is modified to allow handling of user mediated >> requests. >> > > > > > - So that developer can know which request may get user >> mediated, >> > > every >> > > > > > request exposes a boolean field userMediated (this is not part >> of >> > > > > standard >> > > > > > but could be good to have something like this for future >> version). >> > > This >> > > > > > would allow developers to write code like below, >> > > > > > >> > > > > > var r = osapi.activites.create(); >> > > > > > if (r.userMediated) { >> > > > > > // skip creating activity, as I don't want to bug the user. >> > > > > > } else { >> > > > > > r.execute(); >> > > > > > } >> > > > > > >> > > > > > >> > > > > > >> > > > > > -- >> > > > > > This message is automatically generated by JIRA. >> > > > > > - >> > > > > > You can reply to this email to add a comment to the issue >> online. >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> > >

