fixed the inheritance bug
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index 26047c3..1dd09c0 100644 (file)
@@ -1,11 +1,11 @@
 package Catalyst;
 
 use strict;
-use base 'Class::Data::Inheritable';
+use base 'Catalyst::Base';
 use UNIVERSAL::require;
 use Catalyst::Log;
 
-__PACKAGE__->mk_classdata($_) for qw/_config engine log/;
+__PACKAGE__->mk_classdata($_) for qw/engine log/;
 
 our $VERSION = '5.00';
 our @ISA;
@@ -125,18 +125,6 @@ Returns a hashref containing your applications settings.
 
 =cut
 
-sub config {
-    my $self = shift;
-    $self->_config( {} ) unless $self->_config;
-    if ( $_[0] ) {
-        my $config = $_[1] ? {@_} : $_[0];
-        while ( my ( $key, $val ) = each %$config ) {
-            $self->_config->{$key} = $val;
-        }
-    }
-    return $self->_config;
-}
-
 sub import {
     my ( $self, @options ) = @_;
     my $caller = caller(0);
@@ -146,6 +134,10 @@ sub import {
         push @{"$caller\::ISA"}, $self;
     }
 
+    if ( $caller->engine ) {
+        return;    # Catalyst is allready initialized
+    }
+
     unless ( $caller->log ) {
         $caller->log( Catalyst::Log->new );
     }
@@ -157,7 +149,8 @@ sub import {
     }
 
     # Options
-    my $engine = $ENV{MOD_PERL}
+    my $engine =
+      $ENV{MOD_PERL}
       ? 'Catalyst::Engine::Apache'
       : 'Catalyst::Engine::CGI';
 
@@ -190,6 +183,13 @@ sub import {
     # Engine
     $engine = "Catalyst::Engine::$ENV{CATALYST_ENGINE}"
       if $ENV{CATALYST_ENGINE};
+
+    if ( $engine eq 'Catalyst::Engine::Server' ) {
+        $engine = 'Catalyst::Engine::HTTP::Daemon';
+        $caller->log->warn( "Catalyst::Engine::Server is deprecated, "
+              . "using Catalyst::Engine::HTTP::Daemon." );
+    }
+
     $engine->require;
     die qq/Couldn't load engine "$engine", "$@"/ if $@;
     {