Wow, great!

I think I'll hold off until this change comes out in a
tested release, but nice work!

Brad

--- Geoff Talvola <[EMAIL PROTECTED]> wrote:
> OK, I couldn't resist looking into this -- my
> curiosity was killing 
> me.  The last time I investigated why pickling class
> instances wasn't 
> working, it looked like the fact that we were
> exec'ing our servlets instead 
> of importing them was confusing pickle.  But we
> recently switched (in 
> Webware CVS) from exec'ing servlets to importing
> servlets as modules in a 
> package.  So I thought, maybe we are now able to
> pickle class objects in 
> sessions...
> 
> So I wrote a simple test servlet, and it works!  I
> can shut down and 
> restart my app server and everything works fine and
> the sessions are 
> preserved.  I've included my test servlet -- a
> variation of the CountVisits 
> example that stores the count in a simple class.
> 
> So Brad, you could consider switching to a CVS
> version of Webware.  The 
> current tip of CVS seems quite stable to me.
> 
> It's possible that there are problems with more
> complex cases, but this at 
> least shows that it's possible to store class
> instances in sessions.
> 
> 
> # PickleTest.py
> from WebKit.Page import Page
> 
> class Counter:
>          def __init__(self):
>                  self._count = 0
>          def incrementCount(self):
>                  self._count = self._count + 1
>          def count(self):
>                  return self._count
> 
> 
> class PickleTest(Page):
>          def writeContent(self):
>                  counter =
> self.session().value('counter', None)
>                  if counter is None:
>                          counter = Counter()
>                         
> self.session().setValue('counter', counter)
>                  counter.incrementCount()
>                  count = counter.count()
> 
>                  if count>1:
>                          plural = 's'
>                  else:
>                          plural = ''
>                  self.writeln("<p> You've been here
> %d time%s." % (count, 
> plural))
>                  self.writeln('<p> Try hitting
> RELOAD now.')
> 
> 
> 
> 
> 
> --
> 
> - Geoff Talvola
>    [EMAIL PROTECTED]
> 
> _______________________________________________
> Webware-discuss mailing list
> [EMAIL PROTECTED]
>
http://lists.sourceforge.net/lists/listinfo/webware-discuss


__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - buy the things you want at great prices
http://auctions.yahoo.com/

_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to