Changes for version 2.00_25 - 2008-11-20

  • Fixed a bug with nested MasterPages which caused some fatal errors.
  • Fixed another issue with nested MasterPages which caused the parser to not interpret all <asp:ConentPlaceHolder /> tags (when there were more than one) inside of an <asp:Content /> in a nested MasterPage. I suppose you really had to be there.
  • Added tests to check for these problems with nested MasterPages.

Changes for version 2.00_24 - 2008-11-19

  • Added Apache2::ASP::Manual::BestPractices.

Changes for version 2.00_23 - 2008-11-19

  • Added asphelper.
  • Moved asphelper and runasp into the sbin/* directory in the distribution.
  • Added Test::Memory::Cycle to the PREREQ_RPM list in Makefile.PL
  • Fixed a (hopefully) rare corner-case in which thaw($Application) would return undef - the solution was to default to an empty hashref { }.
  • Fixed a but in ASPPage in which empty asp:ContentPlaceHolder tags in MasterPages caused the "%s does not define an asp:ContentPlaceHolder with an id of %s" error even for legitimate child pages.
  • Added Apache2::ASP::ConfigNode::System::Settings.
  • $Config->system->settings->someSettingName works as expected.
  • foreach $hashref ( $Config->system->settings ) { } now works as expected.
  • Added more tests to t/01.03-configloader.t for config testing (by no means complete).

Changes for version 2.00_22 - 2008-10-10

  • Fixed a bug which caused GlobalASA to not initialize properly.

Changes for version 2.00_21 - 2008-11-10

  • Minor adjustments.
  • Added some documentation.

Changes for version 2.00_20 - 2008-11-07

  • Added missing file t/lib/My/ErrorHandler.pm to MANIFEST.

Changes for version 2.00_19 - 2008-11-07

  • Added some /Manual/* documentation.
  • HTTPContext now correctly traps "unhandled tag" errors.

Changes for version 2.00_18 - 2008-11-05

  • New *.pm files in the PAGE_CACHE are chmod 0666.
  • Added ErrorHandler. By default, it prints a stacktrace to the browser and sends a copy to the email address specified in the <errors> config.
  • Added <errors> section to config.
  • Updated configuration DTD for <errors> section.
  • Apache2::ASP::ModPerl now correctly returns a 0 value and sets $r->status.
  • $Server->RegisterCleanup references the correct Apache2::RequestRec object.
  • Added "runasp," the command-line interface to run ASP scripts.

Changes for version 2.00_17 - 2008-11-04

  • Fixed a bug which caused Apache2::ASP::Test::UserAgent to not get the output buffer content from the correct Mock request object (meaning that $s->ua->get('/url.asp')->content was always empty.
  • Added test to make sure that the above fix stays in place.
  • Internal changes within HTTPContext WRT self-hash-notation upgraded to get_prop().

Changes for version 2.00_16 - 2008-11-03

  • ASPPage mkdir's each missing part of the page cache.
  • ConfigParser correctly handles configs that don't specify any request filters.
  • Re-included Apache2::ASP::TransHandler, albeit with different semantics.

Changes for version 2.00_15 - 2008-11-01

  • XML Config file schema updated - (settings, env_vars) to support DTD validation.
  • DTD for XML Config is now included.

Changes for version 2.00_14 - 2008-10-31

  • If querystring or form data contains multiple values for the same parameter, that parameter will become an arrayref of values.
  • Multiple config post-processors can be defined in the config XML file. They will be executed in the order they are listed in the config XML file.
  • Nested master pages are now supported.

Changes for version 2.00_13 - 2008-10-30

  • Each upload form submission should now include a unique "uploadID=xxx" value.
  • Multiple concurrent uploads from the same user under the same session are now supported because of the uploadID=xxx logic.

Changes for version 2.00_12 - 2008-10-29

  • (handler)->init_asp_objects( $context ) was not getting called correctly.

Changes for version 2.00_11 - 2008-10-29

  • ASPPage updated so that pages containing "~" in their text will not cause syntax errors after being parsed.
  • File uploads are handled correctly by ModPerl, UploadHandler and MediaManager.

Changes for version 2.00_10 - 2008-10-26

  • Server.RegisterCleanup(\&subref, \@argref) now fires both from the command-line and within an actual mod_perl environment.

Changes for version 2.00_09 - 2008-10-24

  • Pages that use MasterPages are now executed with the correct @_.
  • Added Apache2::ASP::FormHandler again.

Changes for version 2.00_08 - 2008-10-23

  • Apache2::ASP::Apache creates a new HTTPContext from the correct class/subclass now.
  • Source code is filtered with: s/(\$Response\->End)/return $1/sg;

Changes for version 2.00_07 - 2008-10-22

  • Adjustments to HTTPContext to better support massive stack-depths of "inner" HTTPContexts.

Changes for version 2.00_06 - 2008-10-22

  • Tweaks in ApplicationStateManager and SessionStateManager to avoid a transaction race condition.
  • Config initializes itself (rather than the HTTPContext doing it).
  • Config is now cached in memory on a per-process, per-disk-path basis.

Changes for version 2.00_05 - 2008-10-20

  • Apache2::ASP::HTTPContext now handles final config initialization including setting %ENV vars, @INC modifications and loading modules as specified in the config xml file.
  • Code Coverage: 70.50% (average:stmt+bran+cond+sub)
  • Bugfix: Application->save was getting called at the beginning and end of *every* request. This behavior has been fixed.
  • Various minor tweaks, removing "vestigial" code chunks.
  • Subclassing Apache2::ASP::HTTPContext is now possible.
  • Syntax errors inside of includes are handled better.

Changes for version 2.00_04 - 2008-10-16

  • Added missing files to MANIFEST.
  • Added UploadHandler and MediaManager back to the distribution.
  • Added some upload tests.

Changes for version 2.00_03 - 2008-10-16

  • Added missing files to MANIFEST.

Changes for version 2.00_02 - 2008-10-15

  • Partial page caching has been realized.

Changes for version 2.00_01 - 2008-10-15

  • Complete rewrite. !!!! BREAKING CHANGES !!!!
    • XML Config file format is different! See docs for details!
    • Apache Config file is different! See docs for details!
  • Now "master pages" are supported a la ASP.Net (i.e. named placeholders).
  • Session and Application are only saved to database if they have been changed during the course of the request:
  • Major performance increase. Using master pages instead of includes can further increase performance.
  • Basic tags support has been suspended for now.
  • Removed dependency Datetime::Duration.
  • Removed dependency Sys::Hostname.

Documentation

How to use Apache2::ASP properly
Learn Apache2::ASP in 10 minutes.
Getting started with Apache2::ASP

Modules

ASP for Perl, reloaded.
MySQL backend for Apache2::ASP Application state
SQLite backend for Apache2::ASP Application state
Instant file management for Apache2::ASP applications
A wrapper for CGI utility functions.
Base class for Session State Managers.
MySQL backend for Apache2::ASP Session state
SQLite backend for Apache2::ASP Session state
Simle text fixtures for Apache2::ASP web applications.
Base class for Handlers that process file uploads
Argument for UploadHook instances

Provides

in lib/Apache2/ASP/ASPDOM/Document.pm
in lib/Apache2/ASP/ASPDOM/Node.pm
in lib/Apache2/ASP/ASPHandler.pm
in lib/Apache2/ASP/ASPPage.pm
in lib/Apache2/ASP/ApplicationStateManager.pm
in lib/Apache2/ASP/CacheManager.pm
in lib/Apache2/ASP/Config.pm
in lib/Apache2/ASP/ConfigFinder.pm
in lib/Apache2/ASP/ConfigLoader.pm
in lib/Apache2/ASP/ConfigNode.pm
in lib/Apache2/ASP/ConfigNode/System.pm
in lib/Apache2/ASP/ConfigNode/System/Settings.pm
in lib/Apache2/ASP/ConfigNode/Web.pm
in lib/Apache2/ASP/ConfigParser.pm
in lib/Apache2/ASP/ConfigPostProcessor.pm
in lib/Apache2/ASP/ErrorHandler.pm
in lib/Apache2/ASP/FormHandler.pm
in lib/Apache2/ASP/GlobalASA.pm
in lib/Apache2/ASP/HTTPContext.pm
in lib/Apache2/ASP/HTTPHandler.pm
in lib/Apache2/ASP/Mock/ClientSocket.pm
in lib/Apache2/ASP/Mock/Connection.pm
in lib/Apache2/ASP/Mock/Pool.pm
in lib/Apache2/ASP/Mock/RequestRec.pm
in lib/Apache2/ASP/ModPerl.pm
in lib/Apache2/ASP/Request.pm
in lib/Apache2/ASP/RequestFilter.pm
in lib/Apache2/ASP/Response.pm
in lib/Apache2/ASP/Server.pm
in lib/Apache2/ASP/SimpleCGI.pm
in lib/Apache2/ASP/Test/Base.pm
in lib/Apache2/ASP/Test/UploadObject.pm
in lib/Apache2/ASP/Test/UserAgent.pm
in lib/Apache2/ASP/TransHandler.pm
in lib/Apache2/ASP/UploadHook.pm