Well, better late than never ... I've ticked off most of the major items on the WishList/TodoList and packaged them together as something I've titled Webware-0.7experimental.
http://calrudd.com/Webware/Webware-0.7experimental.tar.gz NOTE: It only includes code that I have personally tested, so although the directory structures are there for UserKit, PSP, etc., I haven't included the source files for them yet. Cheetah is included. There's much more in the README, but here's a quick overview: Tick List ---------------- * It has a non-threaded and forking versions of the dispatcher that will allow such things as IDE-debugging of servlets/applications (Chuck's BIG wish) and profiling of servlets & WebKit. * It includes an automated and easy-to-use testing framework for WebKit and the beginnings of a test suite. It automatically builds up a WebKit sandbox environment and runs servlets in that environment. Install the package, then run 'webkit test -v' to run the tests. * It includes an integrated HTTPServer. It has been tested, thanks to the new testing framework. * It uses a new Webware Component and Setup framework that is based on distutils, and fits in with Chuck's philosophy of what Webware Components are. Run 'webkit helpdesk start' after installation and point your browser to http://localhost:8081/ to learn more. There's alot to this framework, and it's well worth reading up on if you're interested in making Webware fully extensible. It is ready to roll for creating a 'batteries-included' distribution of Webware. * Your applications are now completely separate from the files in the Webware directory. The makeAppWorkingDir script is no longer needed, its behaviour is the default. * The 'webkit' launcher script is much more powerful than the existing ones: * it is object-oriented and thus extensible, unlike the existing ones * the daemon mode works on platforms without fork() (i.e.Windows) * the config files can be in either .ini format or in pure Python. Thus, you can load from raw settings OR live objects assigned in the config file! * It has the beginnings of a builtin HelpDesk application that is an evolution of the builtin application that comes with WebKit 0.6. Its purpose is to provide a centralized interface to the documentation and examples installed with Webware components and user applications. run 'webkit helpdesk start' after installation. * It has extension cascading. (see the WishList) * It is easy to use local subclasses of major WebKit classes such (Ian added this to the WishList yesterday). As such, it supports flexible UrlDecoding!! * It has a Request.fieldMulti() method. * It's MultiPortServer framework provides the hooks to implement WebDav and other protocols. * Geoff's 'ScalabilityEnhancments' suggestions from yesterday have been implemented on the WebKit side. * It has the necessary flexibility to implement gzip compression and OutputCaching. * It gives a more informative error message when someone points there browser direcly at the AppServer on port 8086. (Mike's Wish) * It uses SpacesNotTabs ;-) Changes Likely To Be Controversial ------------------------------------ * MiscUtils and WebUtils have been merged into a Python package called Webware.Utils. The 'Webware' package contains all the core classes and utitilities that are shared between Webware Components. WebKit, UserKit etc. are all in separate packages. If this causes a problem for people we can easily implement transitional versions MiscUtils and WebUtils that act as proxies to this new package. * It requires Python 2.0 and up. I don't see any compelling reason to continue support for 1.5.2. If people can install Webware they can also install 2.0! If they're concerned about breaking existing Apps by making that change, why don't they go through their Apps and make the few minor changes that might be required. * Some of the methods in the Request class that I complained about in reference to UrlDecoding and assuming too much about how UrlDecoding works have not been implemented as part of the core. If there is a need we can handle this via subclasses. ------------- I'm not submitting this as patches against the Webware CVS because the internal architectural changes are profound. Applying these changes via patches would break the existing codebase and render it useless for weeks while a code audit is performed. That would just piss everyone off! So please think of this package as an experimental DEVEL_BRANCH to the Webware CVS. That's what I hope it will become (Chuck ;-). There are some implementation details that are radically different from the existing Webware, but I feel that it follows and builds on the design principles of Webware: * Modularity * Flexibility/Extensibility * Webware as a suite of layered components, rather than as a monolith. In my not so humble opinion it provides a solid base for the 0.7 coding. See the README for TODO notes. I await your thoughts... Cheers, Tavis _______________________________________________ Webware-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/webware-devel