$class->setup_plugins( delete $flags->{plugins} );
$class->setup_dispatcher( delete $flags->{dispatcher} );
if (my $engine = delete $flags->{engine}) {
- $class->log->warn("Specifying the engine in ->setup is no longer supported, XXX FIXME");
+ $class->log->warn("Specifying the engine in ->setup is no longer supported, see Catalyst::Upgrading");
}
$class->setup_engine();
$class->setup_stats( delete $flags->{stats} );
if ($ENV{MOD_PERL}) {
my $apache = $class->engine_loader->auto;
- # FIXME - Immutable
- $class->meta->add_method(handler => sub {
+
+ my $meta = find_meta($class);
+ my $was_immutable = $meta->is_immutable;
+ my %immutable_options = $meta->immutable_options;
+ $meta->make_mutable if $was_immutable;
+
+ $meta->add_method(handler => sub {
my $r = shift;
my $psgi_app = $class->psgi_app;
$apache->call_app($r, $psgi_app);
});
+
+ $meta->make_immutable(%immutable_options) if $was_immutable;
}
$class->engine( $engine->new );