At 04:22 PM 10/24/01 -0400, Geoff Talvola wrote:
>That brings up the larger question of "where do I put resources that are 
>global to the application?"
>
>I usually just put stuff like that into regular Python modules.  Then 
>whenever I need it, I just import the module (at which time it gets 
>initialized) and use it.  Sometimes I put in some helper methods into 
>SitePage to make it more convenient to use within servlets.
>
>But the compelling reason to put this directly into Application is so that 
>it can shutdown cleanly.  I haven't needed that up till now.
>
>So perhaps there needs to be a more general way to register stuff into 
>Application so that it initializes when the app starts up, is available 
>throughout the whole application, AND shuts down cleanly when the 
>appserver is stopped.
>
>But I still agree with Clark that specific stuff like this doesn't really 
>belong directly in Application; rather, there needs to be a plug-in 
>mechanism so that it's easy to add stuff like this into Application via a 
>configuration setting.  Like perhaps in Application.config, there could be 
>a list of Python files with mixins that automatically get applied to 
>Application.  Or a way to substitute your own derived version of 
>Application instead of the original Application.

(following up on my own message) And as others have suggested, a Kit is the 
place to put this db code.

If the Kit's job is to simply augment Application with new methods, then it 
may be as simple as a DbMixin.py module that defines a DbMixin class with 
the new methods, a Properties.py file like the other Kits, and an 
__init__.py like this (completely untested):

# This function gets called by the app server during initialization
def InstallInWebKit(appServer):
         # See if DbKit was enabled
         if appServer.setting('EnableDbKit', 0):
                 # Mix in our DbMixin class into Application
                 from WebKit.Application import Application
                 from DbMixin import DbMixin
                 from MiscUtils.MixIn import MixIn
                 MixIn(Application, DbMixin)


--

- Geoff Talvola
   [EMAIL PROTECTED]

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

Reply via email to