--- 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!