comment/format in: #loadExtensionsForPackage:
authorClaus Gittinger <cg@exept.de>
Sun, 04 Sep 2011 09:34:07 +0200
changeset 13621 85297bc6cfa8
parent 13620 e38a8ec52cd9
child 13622 e4a8162bc7bc
comment/format in: #loadExtensionsForPackage: changed: #loadExtensionsForPackage:language:
Smalltalk.st
--- 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