=cut
-sub run { my $c = shift; return $c->engine->run( $c, $c->_finalized_psgi_app, @_ ) }
+sub run {
+ my $app = shift;
+ $app->engine_loader->needs_psgi_engine_compat_hack ?
+ $app->engine->run($app, @_) :
+ $app->engine->run( $app, $app->_finalized_psgi_app, @_ );
+}
=head2 $c->set_action( $action, $code, $namespace, $attrs )
# .psgi files generated by the old Engine::PSGI do. Those return an app
# coderef calling into MyApp->run, which doesn't work anymore, so we're
# just ignoring it and use the wrapped legacy psgi app
+
+ $app->engine(undef);
+ $app->setup_engine;
+
+ # ^^ We need to do this because even though we are discarded $psgi_app, the
+ # fact that it was loaded above means that Catalyst Engine now has the
+ # wrong value (PSGI), which persists due to the singleton nature of all
+ # this stuff. This solution is probably a lame hack but did work for all
+ # the cases we know about. Hopefully we can pull out this crap soon
+ # Please note that if the fact that the psgi file was loaded started to set
+ # values in areas outside Engine this hack will probably fail.
+
warn <<"EOW";
Found a legacy Catalyst::Engine::PSGI .psgi file at ${psgi_file}.