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. > > > > > > > > > > > > > > > > > > > > > > > > > > >

