The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Catalyst::Engine::Apache2::MP19;

use strict;
use warnings;
use base 'Catalyst::Engine::Apache2';

use Apache2             ();
use Apache::Connection  ();
use Apache::Const       -compile => qw(OK);
use Apache::RequestIO   ();
use Apache::RequestRec  ();
use Apache::RequestUtil ();
use Apache::Response    ();
use Apache::URI         ();
use APR::Table          ();

sub ok_constant { Apache::OK }

sub unescape_uri {
    my ( $self, $str ) = @_;
    
    $str =~ s/\+/ /g;
    return Apache::URI::unescape_url($str);
}

1;
__END__

=head1 NAME

Catalyst::Engine::Apache2::MP19 - Catalyst Apache2 mod_perl 1.99x Engine

=head1 SYNOPSIS

    # Set up your Catalyst app as a mod_perl 1.99x application in httpd.conf
    PerlSwitches -I/var/www/MyApp/lib
    
    # Preload your entire application
    PerlModule MyApp
    
    <VirtualHost *>
        ServerName    myapp.hostname.com
        DocumentRoot  /var/www/MyApp/root
        
        <Location />
            SetHandler          modperl
            PerlResponseHandler MyApp
        </Location>
        
        # you can also run your app in any non-root location
        <Location /some/other/path>
            SetHandler          perl-script
            PerlResponseHandler MyApp
        </Location>
        
        # Make sure to let Apache handle your static files
        # (And remember to remove the Static::Simple plugin in production)
        <Location /static>
            SetHandler          default-handler
        </Location>   
    </VirtualHost>

=head1 DESCRIPTION

This is the Catalyst engine specialized for Apache2 mod_perl version 1.99x.

=head1 WARNING

mod_perl 1.99 was the beta version for mod_perl 2.0.  Upgrading to 2.0 is
strongly recommended.

=head1 CGI ISSUES

In order to run Catalyst under mod_perl 1.99 you will need to downgrade L<CGI>
to version 3.07, as it has dropped support for 1.99 in later versions.

=head1 ModPerl::Registry

While this method is not recommended, you can also run your Catalyst
application via a ModPerl::Registry script.

httpd.conf:

    PerlModule ModPerl::Registry
    Alias / /var/www/MyApp/script/myapp_registry.pl/
    
    <Directory /var/www/MyApp/script>
        Options +ExecCGI
    </Directory>
    
    <Location />
        SetHandler          perl-script
        PerlResponseHandler ModPerl::Registry
    </Location>
    
script/myapp_registry.pl (you will need to create this):

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use MyApp;
    
    MyApp->handle_request( Apache::RequestUtil->request );
    
=head1 METHODS

=head2 ok_constant

=head1 SEE ALSO

L<Catalyst>, L<Catalyst::Engine>, L<Catalyst::Engine::Apache2>.

=head1 AUTHORS

Sebastian Riedel, <sri@cpan.org>

Christian Hansen, <ch@ngmedia.com>

Andy Grundman, <andy@hybridized.org>

=head1 COPYRIGHT

This program is free software, you can redistribute it and/or modify it under
the same terms as Perl itself.

=cut