Added detection of older engine versions
Andy Grundman [Tue, 1 Nov 2005 15:03:08 +0000 (15:03 +0000)]
lib/Catalyst.pm

index f1f2ebe..b2a966e 100644 (file)
@@ -1468,7 +1468,39 @@ sub setup_engine {
 qq/Couldn't load engine "$engine" (maybe you forgot to install it?), "$@"/
         );
     }
+    
+    # check for old engines that are no longer compatible
+    my $old_engine;
+    if (   $engine->isa('Catalyst::Engine::Apache')
+        && ! Catalyst::Engine::Apache->VERSION )
+    {
+        $old_engine = 1;
+    }
+    
+    elsif ( $engine->isa('Catalyst::Engine::Server::Base')
+         && Catalyst::Engine::Server->VERSION le '0.02' )
+    {
+        $old_engine = 1;
+    }
+    
+    elsif ( $engine->isa('Catalyst::Engine::HTTP::POE')
+         && $engine->VERSION eq '0.01' )
+    {
+        $old_engine = 1;
+    }
+    
+    elsif ( $engine->isa('Catalyst::Engine::Zeus')
+         && $engine->VERSION eq '0.01' )
+    {
+        $old_engine = 1;
+    }
 
+    if ($old_engine) {
+        Catalyst::Exception->throw( message =>
+            qq/Engine "$engine" is not supported by this version of Catalyst/
+        );
+    }
+            
     # engine instance
     $class->engine( $engine->new );
 }