On Tue, Sep 9, 2008 at 4:07 PM, John Hjelmstad <[EMAIL PROTECTED]> wrote:
> In general, it _can_ be based on any metadata in the Gadget or HttpResponse > and HttpRequest objects. > Since ultimately rewriting is just running a succession of ContentRewriters > over some object(s), with String input and String output, at present I'm > thinking the key is: > > <list-of-contributing-rewriters-with-version-numbers>+<input-string-hashcode> > > The cache itself is String -> String. The main limitation with this is that > it assumes that rewriting only occurs on "payload" content that can be > expressed in String form. If other modifications to Gadget or HttpResponse > are required (ie. to HttpResponse headers) in the future, those will need > to > participate in the key. Is that input stream hashcode or a string fingerprint? String.hashCode is only 32 bits long, which would make for many collisions. An md5 of the body contents will avoid most of that. > > > --John > > On Tue, Sep 9, 2008 at 3:58 PM, Brian Eaton <[EMAIL PROTECTED]> wrote: > > > On Tue, Sep 9, 2008 at 3:18 PM, John Hjelmstad <[EMAIL PROTECTED]> wrote: > > > This might be a problem -- the rewriter registry has no knowledge of > its > > > calling context, and I'm loath to add specific caching APIs/parameters > to > > > its methods unless absolutely necessary. Can you say more about why > this > > is > > > required? In what way can't the rewriting behavior in this case key on > > > <rewriters>+<input string hash>? > > > > Hmm. Maybe it isn't necessary. Can you explain the caching algorithm > > for the rewriters? I thought it must be based on URL, but if it > > isn't, maybe there's no problem. > > >

