comment/format in: #loadExtensionsForPackage:
changed: #loadExtensionsForPackage:language:
--- a/Smalltalk.st Mon Aug 29 08:23:13 2011 +0200
+++ b/Smalltalk.st Sun Sep 04 09:34:07 2011 +0200
@@ -2187,20 +2187,22 @@
!
loadExtensionsForPackage:aPackageId
-
| extensionsLoaded |
+
extensionsLoaded := false.
- ProgrammingLanguage allDo:
- [:lang|
- extensionsLoaded := extensionsLoaded | (self loadExtensionsForPackage:aPackageId language: lang)].
- ^extensionsLoaded
+ ProgrammingLanguage allDo:[:lang|
+ extensionsLoaded := extensionsLoaded | (self loadExtensionsForPackage:aPackageId language: lang)
+ ].
+ ^ extensionsLoaded
"Modified: / 18-02-2007 / 11:03:26 / cg"
"Modified: / 02-01-2010 / 10:43:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 04-09-2011 / 09:19:24 / cg"
!
loadExtensionsForPackage:aPackageId language: language
- |mgr packageDirName inStream|
+ |mgr packageDirName inStream projectDefinition extensionsFilename mod dir
+ extensionsRevisionString extensionsRevisionInfo|
language supportsExtensionMethods ifFalse:[^false].
@@ -2209,9 +2211,9 @@
(packageDirName notNil and:[Class tryLocalSourceFirst]) ifTrue:[
(self loadExtensionsFromDirectory:packageDirName language: language) ifTrue:[
- ^ true.
- ].
- packageDirName := nil. "do not try again"
+ ^ true.
+ ].
+ packageDirName := nil. "do not try again"
].
"
@@ -2219,20 +2221,40 @@
"
mgr := Smalltalk at:#SourceCodeManager.
mgr notNil ifTrue:[
- SourceCodeManagerError handle:[:ex |
- ] do:[
- inStream := mgr getMostRecentSourceStreamForFile:'extensions.' , language sourceFileSuffix inPackage:aPackageId.
- ].
- inStream notNil ifTrue:[
- Class withoutUpdatingChangeSetDo:[
- inStream fileIn.
- ].
- inStream close.
- SilentLoading ifFalse:[
- Transcript showCR:('loaded extensions for ',aPackageId,' from repository').
- ].
- ^ true
- ]
+ extensionsFilename := 'extensions.' , language sourceFileSuffix.
+
+ projectDefinition := ProjectDefinition definitionClassForPackage:aPackageId.
+ projectDefinition notNil ifTrue:[
+ mod := aPackageId asPackageId module.
+ dir := aPackageId asPackageId directory.
+ extensionsRevisionString := projectDefinition perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
+ extensionsRevisionString notNil ifTrue:[
+ extensionsRevisionInfo := mgr revisionInfoFromString:extensionsRevisionString inClass:nil.
+ extensionsRevisionInfo notNil ifTrue:[
+ extensionsRevisionInfo fileName = extensionsFilename ifFalse:[^ false].
+ ]
+ ].
+ SourceCodeManagerError handle:[:ex |
+ ] do:[
+ inStream := mgr streamForExtensionFile:extensionsFilename package:aPackageId directory:dir module:mod cache:true.
+ ].
+ ].
+ inStream isNil ifTrue:[
+ SourceCodeManagerError handle:[:ex |
+ ] do:[
+ inStream := mgr getMostRecentSourceStreamForFile:extensionsFilename inPackage:aPackageId.
+ ].
+ ].
+ inStream notNil ifTrue:[
+ Class withoutUpdatingChangeSetDo:[
+ inStream fileIn.
+ ].
+ inStream close.
+ SilentLoading ifFalse:[
+ Transcript showCR:('loaded extensions for ',aPackageId,' from repository').
+ ].
+ ^ true
+ ]
].
packageDirName notNil ifTrue:[
@@ -2240,9 +2262,9 @@
].
^ false
- "Modified: / 18-02-2007 / 11:03:26 / cg"
"Created: / 02-01-2010 / 10:41:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 19-03-2011 / 10:03:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 04-09-2011 / 09:30:22 / cg"
!
loadExtensionsFromDirectory:packageDirOrString
@@ -7653,11 +7675,11 @@
!Smalltalk class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.974 2011-08-20 14:43:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.975 2011-09-04 07:34:07 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.974 2011-08-20 14:43:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.975 2011-09-04 07:34:07 cg Exp $'
!
version_SVN