RE: [Webware-devel] Servlet init / lifecycle

2003-07-29 Thread paul.boddie
Geoffrey Talvola [mailto:[EMAIL PROTECTED] wrote:
> 
> Ian Bicking wrote:
> > 
> > If caching wasn't done in the factory, I think it should be.  I think
> > that just means we have to have a method to return the servlet to the
> > factory, and then the factory can keep a pool of servlets.
> 
> I agree -- the caching belongs in the factory, not in Application.

I know that this is "done and dusted" already, but I also think that this is
a great idea. You may have seen a patch I submitted which attempts to allow
Webware contexts to have "virtual resources" in much the same way that
mod_python doesn't care what the requested resource is called as long as the
extension is the one mapped to the specified mod_python handler. My patch
does an inelegant workaround with respect to caching, and it also has to
suppress the insistence that real files exist for every requested resource -
something which certainly is useful in many situations (eg. checking
modified times against active servlets), but is obstructive or unnecessary
in other situations (eg. "virtual resources").

Especially in the light of the PyWeb stuff that Ian is particularly involved
with, I believe that generalising/simplifying/refactoring the caching and
servlet "discovery" code is important. Certainly, making Webware and
mod_python's behaviour similar (and to the benefit of Webware) is a good
thing.

Anyway, Webware 0.9 (or 1.0?) is looking promising, especially if my dodgy
patches no longer need applying.

Paul


---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
Webware-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-devel


RE: [Webware-devel] Servlet init / lifecycle

2003-07-29 Thread Ian Bicking
On Tue, 2003-07-29 at 04:36, [EMAIL PROTECTED] wrote:
> I know that this is "done and dusted" already, but I also think that this is
> a great idea. You may have seen a patch I submitted which attempts to allow
> Webware contexts to have "virtual resources" in much the same way that
> mod_python doesn't care what the requested resource is called as long as the
> extension is the one mapped to the specified mod_python handler. My patch
> does an inelegant workaround with respect to caching, and it also has to
> suppress the insistence that real files exist for every requested resource -
> something which certainly is useful in many situations (eg. checking
> modified times against active servlets), but is obstructive or unnecessary
> in other situations (eg. "virtual resources").

This actually doesn't handle virtual resources.  Unlike mod_python,
URLParser adds the extension itself, so it has to have a filesystem to
search.  The assumption of a file is carried on into ServletFactory, at
least into the caching that is performed.

If you want to use virtual resources you'd have to put a sub-parser in
the path somewhere (probably in an __init__.py file), like:

class SubParser(URLParser):
def __init__(self, rootObj):
self.rootObj = rootObj
def parse(self, trans, requestPath):
# URLParser needs a helper function here...
splitted = requestPath[1:].split('/', 1)
first = splitted[0]
if splitted[1:]:
rest = '/' + splitted[1:]
else:
rest = ''
# now we get to do interesting things...
if first.startswith('_'):
# More access controls are probably called for
raise HTTPForbidden
dest = getattr(self.rootObj, first)
if rest:
return SubParser(dest).parse(self, trans, rest)
else:
return dest


Hmm... that's assuming you are traversing a bunch of threadsafe
servlet-like objects, which is an unlikely scenario.  The factory only
comes in indirectly, by changing that last line -- in a more likely case
you'd probably be wrapping the final object in a servlet class.  Which
is what a factory does...

I don't know, it's not all thought out yet.

  Ian




---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
Webware-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-devel