Hey, Apache::ASP 2.33 is released, which you can find in your local CPAN, or
http://www.perl.com/CPAN-local/modules/by-module/Apache/ Below are the changes for 2.33 & 2.31 since I never officially announced 2.31. This is a big release which has some bug fixes, lots of new test cases to verify the API, and some significant changes to code structure and the asp-perl CGI/command line processor. For more information on Apache::ASP, please see http://www.apache-asp.org Thanks, Josh _________________________________________________________________ Joshua Chamas Chamas Enterprises Inc. NodeWorks Founder Huntington Beach, CA USA http://www.nodeworks.com 1-714-625-4051 $MODULE=Apache::ASP; $VERSION = 2.33; $DATE="04/29/2002" - fixed up t/server_mail.t test to skip if a sendmail server is not available on localhost. We only want the test to run if there is a server to test against. + removed cgi/asp script, just a symlink now to the ./asp-perl script which in this way deprecates it. I had it hard linked, but the distribution did not untar very well on win32 platform. + Reordered the modules in Bundle::Apache::ASP for a cleaner install. - Fixed bug where XMLSubs where removing <?xml version ... ?> tag when it was needed in XSLT mode. + $Server->Mail({ CC => '...', BCC => '...' }), now works to send CC & BCC headers/recipients. + Removed $Apache::ASP::Register definition which defined the current executing Apache::ASP object. Only one part of the application was using it, and this has been fixed. This would have been an unsafe use of globals for a threaded environment. + Decreased latency when doing Application_OnStart, used to sleep(1) for CleanupMaster sync, but this is not necessary for Application_OnStart scenario + Restructure code / core templates for MailErrorsTo funcationality. Wrote test mail_error.t to cover this. $ENV{REMOTE_USER} will now be displayed in the MailErrorsTo message when defined from 401 basic auth. + $Server->RegisterCleanup should be thread safe now, as it no longer relies on access to @Apache::ASP::Cleanup for storing the CODE ref stack. + test t/inode_names.t for InodeNames and other file tests covering case of long file names. - Fixed long file name sub identifier bug. Added test t/long_names.t. + CacheDir may now be set independently of StateDir. It used to default to StateDir if it was set. ++ Decomposition of modules like Apache::ASP::Session & Apache::ASP::Application out of ASP.pm file. This should make the source more developer friendly. This selective code compilation also speeds up CGI requests that do not need to load unneeded modules like Apache::ASP::Session, by about 50%, so where CGI mode ran at about 2.1 hits/sec before, now for light requests that do not load $Session & $Application, requests run at 3.4 hits/sec, this is on a dual PIII-450 linux 2.4.x - Caching like for XSLTCache now works in CGI mode. This was a bug that it did not before. + $Server->File() API added, acts as a wrapper around Apache->request->filename Added test in t/server.t ++ *** EXPERIMENTAL / ALPHA FEATURE NOTE BEGIN *** New $PERLLIB/Apache/ASP/Share/ directory created to hold system & user contributed components, which will be found on the $Server->MapInclude() path, which helps $Response->Include search '.',Global,IncludesDir, and now Apache::ASP::Share for includes to load at runtime. The syntax for loading a shared include is to prefix the file name with Share:: as in: $Response->TrapInclude('Share::CORE/MailError.inc'); New test to cover this at t/share.t This feature is experimental. The naming convention may change and the feature may disappear altogether, so only use if you are interesting in experimenting with this feature & will provide feedback about how it works. *** EXPERIMENTAL / ALPHA FEATURE NOTE END *** + asp-perl script now uses ./asp.conf instead of ./asp.config for runtime configuration via %Config defined there. Update docs for running in standalone CGI mode + Make use of MANFEST.SKIP to not publish the dev/* files anymore. - Script_OnEnd guaranteed to run after $Response->End, but it will not run if there was an error earlier in the request. + lots of new test cases covering behaviour of $Response->End and $Response->Redirect under various conditions like XMLSubs and SoftRedirect and global.asa Script_OnStart + asp-perl will be installed into the bin executables when Apache::ASP is installed. asp-perl is the command line version of Apache::ASP that can also be used to run script in CGI mode. Test case covering asp-perl functionality. + asp CGI/command line script now called asp-perl. I picked this name because Apache::ASP often has the name asp-perl in distributions of the module. + Apache::ASP::CGI::Test class now subclass of Apache::ASP::CGI. To facilitate this Apache::ASP::CGI::init() now called OO like Apache::ASP::CGI->init() Fixed up places where the old style was called. New Test class allows a dummy Apache request object to be built which caches header & body output for later inspection instead of writing it to STDOUT. - $Response->Redirect() under SoftRedirect 1 will not first Clear() buffer - $Response->Redirect() in an XMLSubs will work now ... behavior of $Response->Flush() being turned off in an XMLSubs was interfering with this. + srand() init tracking done better, thanks for patch from Ime Smits + Added file/directory being used for precompilation in Apache::ASP->Loader($file, ...) to output like: [Mon Feb 04 20:19:22 2002] [error] [asp] 4215 (re)compiled 22 scripts of 22 loaded for $file This is so that when precompiling multiple web sites each with different directories, one can easier see the compile output relevant to the Loader() command being run. + better decomp of Apache::ASP site build files at ./build/* files, which is good should anyone look at it for ideas. + improved test suite to error when unintended output results from t/*.t test scripts. - () now supported in XMLSubsMatch config, added xmlsubsmatch.t test... specifically a config like PerlSetVar (aaa|bbb):\w+ should now work. Thanks for bug report from David Kulp. + Added an early srand() for better $ServerID creation + Work around for DSO problems where $r is not always correctly defined in Apache::ASP::handler(). Thanks to Tom Lear for patch. $MODULE=Apache::ASP; $VERSION = 2.31; $DATE="01/22/2002"; Please see README for changes for past versions. + = improvement; - = bug fix + $Server->MapInclude() API extension created to wrap up Apache::ASP::SearchDirs +functionality so one may do an conditional check for an include existence befor executing $Response->Include(). Added API test to server.t + $Server->Transfer() now allows arguments like $Response->Include(), and now acts just as a wrapper for: $Response->Include($file, @args); $Response->End(); added test case at t/server_transfer.t + Removed dependency of StatINC functionality on Apache::Symbol. Apache::Symbol is no longer required. Added test of t/stat_inc.t for correct StatINC initialization for platforms where Devel::Symdump is present. + Better error message when $Request->Params has not been defined with RequestParams config & it gets used in script. Added test case as t/request_params_none.t + Directories cannot now be included as scripts via $Response->Include(), added test case to t/include.t - No longer make $Response->Flush dependent on $Response->IsClientConnected() to be true to write output to client. There have been spurious errors reported about the new ( >= 2.25 ) IsClientConnected code, and this will limit the impact of that functionality possibly not working still to those users explicitly using that API. + $Response->AddHeader($header_name, $value) now will set $Response members for these headers: Content-Type, Cache-Control, Expires. This is to avoid both the application & Apache::ASP sending out duplicate headers. Added test cases for this to t/response.t + split up Bundle::Apache::ASP into that, and Bundle::Apache::ASP::Extra the former with just the required modules to run, and the latter for extra functionality in Apache::ASP + new $Request->{Method} member to return $r->method of GET or POST that client browser is requesting, added t/request.t sub test to cover this member.