ProjectDefinition.st
changeset 10149 66e8c391d718
parent 10147 59a4c7715a90
child 10154 abf2c5f9ba8c
--- a/ProjectDefinition.st	Thu Oct 26 14:38:35 2006 +0200
+++ b/ProjectDefinition.st	Thu Oct 26 15:15:59 2006 +0200
@@ -2166,7 +2166,8 @@
     "load (fileIn) classes that should be present -
      install as autoloaded classes marked to be autoloaded"
     
-    |classNamesToLoad classNamesToAutoload hasClassesToLoad loadedClasses platformName|
+    |classNamesToLoad classNamesToAutoload hasClassesToLoad loadedClasses platformName
+     classesWhichFailedToLoad|
 
     platformName := OperatingSystem platformName.
     classNamesToLoad := OrderedCollection new.
@@ -2213,19 +2214,34 @@
                 numClassInstVars:0.     "FIXME"
         ].
 
+        classesWhichFailedToLoad := OrderedCollection new.
         classNamesToLoad do:[:eachClassName | 
             |cls|
 
-            cls := Smalltalk 
-                        fileInClass:eachClassName
-                        package:self package
-                        initialize:false
-                        lazy:false
-                        silent:false.
-            cls notNil ifTrue:[
-                loadedClasses add:cls
+            Error handle:[:ex |
+                classesWhichFailedToLoad add:eachClassName.
+                Smalltalk
+                    installAutoloadedClassNamed:eachClassName 
+                    category:#autoloaded    "FIXME"
+                    package:self package 
+                    revision:nil 
+                    numClassInstVars:0.     "FIXME"
+            ] do:[
+                cls := Smalltalk 
+                            fileInClass:eachClassName
+                            package:self package
+                            initialize:false
+                            lazy:false
+                            silent:false.
+                cls notNil ifTrue:[
+                    loadedClasses add:cls
+                ].
             ].
         ].
+        classesWhichFailedToLoad do:[:eachClassName |
+            (Smalltalk at:eachClassName) autoload.
+        ].
+
         loadedClasses do:[:eachLoadedClass | 
             "do not initialize, if initialize method is inherited"
             (eachLoadedClass theMetaclass implements:#initialize) ifTrue:[
@@ -2235,7 +2251,7 @@
     ].
 
     "Created: / 17-08-2006 / 01:01:14 / cg"
-    "Modified: / 30-08-2006 / 18:32:56 / cg"
+    "Modified: / 26-10-2006 / 12:30:01 / cg"
 !
 
 loadClassLibrary
@@ -2272,7 +2288,7 @@
 
         def := ProjectDefinition definitionClassForPackage:aPackage.
         def isNil ifTrue:[
-            Dialog warn:'Missing projectDefinition class for: ',aPackage.
+            Smalltalk loadPackage:aPackage.
         ] ifFalse:[
             def autoload.
         ].
@@ -2292,6 +2308,7 @@
     ].
 
     "Created: / 25-10-2006 / 17:51:07 / cg"
+    "Modified: / 26-10-2006 / 12:24:33 / cg"
 !
 
 loadPreRequisites
@@ -3537,7 +3554,7 @@
 !ProjectDefinition class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.114 2006-10-25 16:09:21 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.115 2006-10-26 13:15:59 cg Exp $'
 ! !
 
 ProjectDefinition initialize!