--- a/Autoload.st Wed Apr 03 20:39:02 2013 +0200
+++ b/Autoload.st Wed Apr 03 20:53:03 2013 +0200
@@ -286,7 +286,7 @@
Return the loaded class"
|myName myNameSpace newClass project prevMode packageID
- packageDefinitionClass|
+ packageDefinitionClass packageExtensionsFile|
self == Autoload ifTrue:[
"already loaded"
@@ -329,14 +329,14 @@
].
].
- "load it"
(Object infoPrinting and:[Smalltalk silentLoading ~~ true]) ifTrue:[
"/ thisContext fullPrintAll.
Transcript showCR:('autoloading ', myName , ' ...'); endEntry.
].
packageID := self package.
- "is there a package-definition ?"
+
+ "if there is a package-definition, make sure it is loaded first"
packageDefinitionClass := ProjectDefinition definitionClassForPackage: packageID.
(packageDefinitionClass notNil) ifTrue:[
(packageDefinitionClass ~~ self) ifTrue:[
@@ -344,8 +344,18 @@
(packageDefinitionClass isLoaded) ifFalse:[
packageDefinitionClass autoload.
].
+ "/ make sure that my package's extensions are also present
+ (packageDefinitionClass isLoaded) ifTrue:[
+ packageDefinitionClass loadExtensions
+ ]
].
].
+ ] ifFalse:[
+ "/ no package definition class - look for extensions anyway
+ packageExtensionsFile := (Smalltalk projectDirectoryForPackage:packageID) asFilename / 'extensions.st'.
+ packageExtensionsFile exists ifTrue:[
+ packageExtensionsFile fileIn.
+ ].
].
[
@@ -371,10 +381,13 @@
do:[
Class classConventionViolationConfirmationQuerySignal answer:true
do:[
- (self classFilename notNil and:[self classFilename asFilename isAbsolute]) ifTrue:[
+ |classFileName|
+
+ classFileName := self classFilename.
+ (classFilename notNil and:[classFilename asFilename isAbsolute]) ifTrue:[
"/ if filename is absolute, the autoload-class was created by an
"/ explicit install-as-autoloaded via the fileBrowser.
- Smalltalk fileIn:self classFilename lazy:false silent:nil.
+ Smalltalk fileIn:classFilename lazy:false silent:nil.
] ifFalse:[
(Smalltalk
fileInClass:myName
@@ -797,11 +810,12 @@
!Autoload class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.162 2012-11-06 00:23:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.163 2013-04-03 18:53:03 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.162 2012-11-06 00:23:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.163 2013-04-03 18:53:03 cg Exp $'
! !
+
Autoload initialize!