From bf1a52517d3512bdc8b5155a852d6eb2e59d94ef Mon Sep 17 00:00:00 2001
From: romanb <romanb@625475ce-881a-0410-a577-b389adb331d8>
Date: Wed, 2 Sep 2009 16:08:03 +0000
Subject: [PATCH] [2.0] Fixed issue with file-based metadata drivers and the
 CLI.

---
 lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php | 6 +++---
 lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php    | 8 +++++---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php b/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php
index 96e2e9f9c..3badb3c2e 100644
--- a/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php
+++ b/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php
@@ -180,15 +180,15 @@ abstract class AbstractFileDriver implements Driver
      * 
      * @return array The list of class names that have been preloaded.
      */
-    public function preload()
+    public function preload($force = false)
     {
-        if ($this->_mode != self::PRELOAD) {
+        if ($this->_mode != self::PRELOAD && ! $force) {
             return array();
         }
 
         foreach ((array)$this->_paths as $path) {
             if (is_dir($path)) {
-                $files = glob($path . '/*' . $this->_fileExtension);
+                $files = glob($path . '/*');
                 foreach ($files as $file) {
                     $this->_elements = array_merge($this->_elements, $this->_loadMappingFile($file));
                 }
diff --git a/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php b/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php
index 5820e7c9d..8fc2f8311 100644
--- a/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php
+++ b/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php
@@ -52,7 +52,7 @@ class SchemaToolTask extends AbstractTask
     {
         $this->getPrinter()->write('schema-tool', 'KEYWORD');
         $this->getPrinter()->writeln(
-            ' --create | --drop | --update [--dump-sql] [--classdir=<path>]',
+            ' (--create | --drop | --update) [--dump-sql] [--classdir=<path>]',
             'INFO');
     }
     
@@ -126,8 +126,10 @@ class SchemaToolTask extends AbstractTask
                 }
             }
         } else {
-            $driver->preload();
-            $classes = $cmf->getLoadedMetadata();
+            $preloadedClasses = $driver->preload(true);
+            foreach ($preloadedClasses as $className) {
+                $classes[] = $cmf->getMetadataFor($className);
+            }
         }
         
         $printer = $this->getPrinter();
-- 
2.21.0