> On 2011-12-14 17:58:55, Jesse Ciancetta wrote:
> > Some observations after a first pass:
> >
> > IMO the API would make more sense and be a little more intuitive if we
> > broke it up into a couple of more specific public functions instead of
> > having just one multi-purpose function. Right now without looking at the
> > code I'd assume that updateContainerSecurityToken would be a function that
> > I would call if I literally wanted the container security token to be
> > updated -- but it's really a function that I can use for either setting the
> > initial token or wrapping a token-needing-function call with a valid token
> > check before execution.
> >
> > I think things would be a little clearer if we had:
> >
> > osapi.container.Container.prototype.setContainerSecurityToken =
> > function(token, ttl) {
> > //Make it clear in the documentation that this should be called
> > before you start any real work with a freshly constructed container.
> > //Maybe even add another optional property to the opt_config
> > object passed to the container constructor for the token and ttl and
> > //then call this function automatically as part of the
> > container initialization. Either way it might still be useful to have a
> > //function that can be called to set the token on-demand if
> > needed. This function would:
> >
> > //set the initial token
> > //schedule the next refresh
> > }
> >
> > osapi.container.Container.prototype.ensureContainerSecurityToken =
> > function(callback) {
> > //Do pretty much what updateContainerSecurityToken does now
> > sans the handling of the initial token.
> > }
> >
> > I'm guessing your also going to want to have a function for ensuring a
> > gadget token too which is going to also use ensureContainerSecurityToken if
> > it finds that it needs to update the gadget token:
> >
> > osapi.container.Container.prototype.ensureGadgetSecurityToken =
> > function(gadgetUrl, moduleId, callback) {
> > //If we find that we need a gadget token then we'll wrap the
> > code to fetch the gadget token in an ensureContainerSecurityToken call
> > }
> >
> > Anyone else have an opinion on this?
> >
> > Code style nit -- all of the other JS code that I see on a quick scan of
> > container.js has braces on the same line as the if/else statements which I
> > think helps to improve readability a bit.
>
> Dan Dumont wrote:
> I suppose that wouldn't really hurt anything. I was hesitant to add it
> though as explicitly SETTING the token is something that some containers may
> choose never to do. It's perfectly valid to never do that, the refresh
> mechanism will launch the first refresh for you on demand.
> However if you're writing out the page with a JSP or something and want
> to avoid a round trip for the container token, this provides you simple means
> to do that without introducing a potentially infrequently used function to
> maintain.
>
> I won't hold it against anyone if they really don't like baking it all in
> one. Having 2 functions seems doable, I'm just trying to be conscious of the
> surface area of the public CC api and how to keep it concise and
> understandable. Making people juggle a few different apis to do 1 task is
> something most JS apis avoid. Dojo and JQuery both massively overload js
> functions that all do a task in different ways depending on the arguments
> supplied.
>
> As for the last comment, I agree with you and for some reason had it
> stuck in my head that it was shindig convention to not do that. But I can't
> recall any specific code I've run into that made me think that. I'll clean
> that up on my next run through of changes.
I actually started out that way (with the name ensureSecurityToken) and thought
that update could serve both use cases nicely especially if the documentation
stated that updating an up-to-date token was a no-op.
- Dan
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3180/#review3908
-----------------------------------------------------------
On 2011-12-14 16:35:00, Dan Dumont wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/3180/
> -----------------------------------------------------------
>
> (Updated 2011-12-14 16:35:00)
>
>
> Review request for shindig, Ryan Baxter, li xu, Jesse Ciancetta, Henry
> Saputra, and Stanton Sievers.
>
>
> Summary
> -------
>
> Initial review of 1st change. Allowing common container to manage container
> token refreshes. Also, refresh of gadget security tokens will now wait for
> valid container security token before trying to refresh.
>
>
> Diffs
> -----
>
>
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/container/container.js
> 1213887
>
> Diff: https://reviews.apache.org/r/3180/diff
>
>
> Testing
> -------
>
> Tested code in a private container with some examples of setting no refresh
> (ttl = 0) and setting an initial token (if it was written by jsp page to
> avoid transaction) etc..
>
>
> Thanks,
>
> Dan
>
>