Add setup_finalize as an easy way to hook at the end of setup.
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index 4255eec..7cc3184 100644 (file)
@@ -1,9 +1,5 @@
 package Catalyst;
 
-# we don't need really need this, but if we load it before MRO::Compat gets
-# loaded (via Moose and Class::MOP), we can avoid some nasty warnings
-use Class::C3;
-
 use Moose;
 extends 'Catalyst::Component';
 use bytes;
@@ -25,7 +21,7 @@ use Time::HiRes qw/gettimeofday tv_interval/;
 use URI ();
 use URI::http;
 use URI::https;
-use Scalar::Util qw/weaken blessed/;
+use Scalar::Util qw/weaken/;
 use Tree::Simple qw/use_weak_refs/;
 use Tree::Simple::Visitor::FindByUID;
 use attributes;
@@ -1049,8 +1045,13 @@ EOF
     Scope::Upper::reap(sub {
         my $meta = Class::MOP::get_metaclass_by_name($class);
         $meta->make_immutable unless $meta->is_immutable;
-    }, 1);
+    }, Scope::Upper::SCOPE(1));
+
+    $class->setup_finalize;
+}
 
+sub setup_finalize {
+    my ($class) = @_;
     $class->setup_finished(1);
 }