Fix Engine::Stomp with psgi
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Upgrading.pod
index 337bc0a..8ce8eec 100644 (file)
@@ -2,7 +2,7 @@
 
 Catalyst::Upgrading - Instructions for upgrading to the latest Catalyst
 
-=head2 Upgrading to Catalyst 5.90
+=head1 Upgrading to Catalyst 5.90
 
 The major change is that L<Plack> now replaces most of the subclasses of
 L<Catalyst::Engine>.  If you are using one of the standard subclasses of
@@ -29,12 +29,12 @@ still be able to continue using that engine.
 
 Advice for specific subclasses of L<Catalyst::Engine> follows:
 
-=head3 Upgrading the FastCGI Engine
+=head2 Upgrading the FastCGI Engine
 
 No upgrade needed if your myapp_fastcgi.pl script is already upgraded
 enough to use L<Catalyst::Script::FastCGI>.
 
-=head3 Upgrading the mod_perl / Apache Engines
+=head2 Upgrading the mod_perl / Apache Engines
 
 The engines that are build upon the various iterations of mod_perl,
 L<Catalyst::Engine::Apache::MP13> and
@@ -45,28 +45,53 @@ as required.
 L<Catalyst::Engine::Apache2::MP19>, is however no longer supported, as Plack
 does not support mod_perl version 1.99??? FIXME - is this true?
 
-=head3 Upgrading the HTTP Engine
+=head2 Upgrading the HTTP Engine
 
 The default development server that comes with the L<Catalyst> distribution
 should continue to work as expected with no changes as long as your C<myapp_server>
 script is upgraded to use L<Catalyst::Script::HTTP>.
 
-=head3 Upgrading the CGI Engine
+=head2 Upgrading the CGI Engine
 
-If you were using L<Catalyst::Engine::CGI> you should now use...
+If you were using L<Catalyst::Engine::CGI> there is no upgrade needed if your
+myapp_cgi.pl script is already upgraded enough to use L<Catalyst::Script::CGI>.
 
-No upgrade needed if your myapp_cgi.pl script is already upgraded
-enough to use L<Catalyst::Script::CGI>.
-
-=head3 Upgrading the Preforking Engine
+=head2 Upgrading the Preforking Engine
 
 If you were using L<Catalyst::Engine::HTTP::Prefork> then L<Starman>
 is automatically loaded. 
 
-=head3 Upgrading the PSGI Engine
+=head2 Upgrading the PSGI Engine
 
 If you were using L<Catalyst::Engine::PSGI> this new release supercedes this
-engine in supporting L<Plack>. You should remove the.. FIXME
+engine in supporting L<Plack>. By default the Engine is now always L<Plack>.
+As a result, you can stop depending on L<Catalyst::Engine::PSGI> in your
+C<Makefile.PL>.  Additionally, if you have an C<app.psgi> script you no longer
+need to specify the PSGI engine.  Instead, the L<Catalyst> application class
+now has a new method C<psgi_app> which returns a L<Plack> compatible coderef.
+
+For example, if you were using L<Catalyst::Engine::PSGI> in the past, you may
+have written an C<app.psgi> file similar to this one:
+
+    use Plack::Builder;
+    use MyCatalytApp;
+
+    MyCatalystApp->setup_engine('PSGI');
+
+    builder {
+        enable ... # enable your desired middleware
+        sub { MyCatalystApp->run(@_) };
+    };
+
+Instead, you now just do
+
+    use Plack::Builder;
+    use MyCatalystApp;
+
+    builder {
+        enable ... #enable your desired middleware
+        MyCatalystApp->psgi_app;
+    };
 
 =head2 Engines with unknown status