| To:
Pharo-project@lists.gforge.inria.fr
| Sent: Saturday, May 19, 2012 2:20:14 PM
| Subject: Re: [Pharo-project] Order of sending class side #initialize
|
|
|
|
| On Sat, May 19, 2012 at 9:01 PM, Dale Henrichs <
dhenrich@vmware.com
| > wrote:
|
|
| Mariano,
|
| To shed some light on the exact problem, I think that you should
| record the initialization order of a Metacello load and compare that
| to the initialization order that you are using.
|
| While your algorithm looks like it is correct it doesn't necessarily
| match the actual initialization order you get when using Monticello
| and Metacello...
|
| It would be interesting to find out where the differences in order
| are and then focus on understanding why...
|
|
| Hi Dale. Well, I did that. I noticed 2 differences:
|
| 1) If the class already exist and the #initialize is the same, it is
| not re-executed. In my case, I execute it always. I know, this is a
| problem I have. Nevertheless, the only classes that already exist in
| the image I am loading is Zinc...and the problem does not seem
| related to that.
|
| 2) The order of the classes/methods inside a package is different. I
| mean, I load the packages in order, but inside, for each package,
| the order I send #initialize is not the same as Monticello. Example:
|
| My code:
|
| Initializing class: WAKeyGenerator class
| Initializing class: WAUrlEncoder class
| Initializing class: WAServerManager class
| Initializing class: WALocale class
| Initializing class: WAResponse class
| Initializing class: WAXmlEncoder class
| Initializing class: WASystemConfiguration class
| Initializing class: WASharedConfiguration class
| Initializing class: WAAbstractFileLibrary class
|
| Monticello:
|
| Initialize class: (Seaside-Core-Libraries) -- WAAbstractFileLibrary
| Initialize class: (Seaside-Core-Configuration) --
| WASystemConfiguration
| Initialize class: (Seaside-Core-Configuration) --
| WASharedConfiguration
| Initialize class: (Seaside-Core-Document) -- WAUrlEncoder
| Initialize class: (Seaside-Core-Document) -- WAXmlEncoder
| Initialize class: (Seaside-Core-Utilities) -- WAKeyGenerator
| Initialize class: (Seaside-Core-HTTP) -- WALocale
| Initialize class: (Seaside-Core-HTTP) -- WAResponse
| Initialize class: (Seaside-Core-Server) -- WAServerManager
|
| So...maybe this is the reason? what I am thinking now that maybe the
| problem is not in the initialization but instead of export? I mean,
| maybe Monticello exports methods/classes with certain order and
| that's why it works? because when exporting I am not using any order
| at all.
|
| Thanks
|
|
|
|
|
| Dale
|
|
|
| ----- Original Message -----
| | From: "Mariano Martinez Peck" <
marianopeck@gmail.com >
| | To: "Pharo Development" <
pharo-project@lists.gforge.inria.fr >
| | Sent: Saturday, May 19, 2012 11:25:57 AM
| | Subject: [Pharo-project] Order of sending class side #initialize
| |
| | Hi guys. I am doing some experiments with FuelPackageLoader and I
| | have a problem with the initialization. All my unit tests pass but
| | when trying to export/import seaside/pier/magritte, I have a
| | problem.
| | What I do basically, is to ask Metacello the list of packages that
| | I
| | need to loaded for seaside and friends. The list is IN ORDER OF
| | LOADING. So what I do during the import is to load each package in
| | the correct order (the one Metacello told me). For each package I
| | load, I initialize its classes (at the end of the load of the
| | package). The order I initialize classes for a package is:
| |
| | ((aPackage classes select: [:each | each isBehavior])
| | sort: [:a :b | a allSuperclasses size < b allSuperclasses size ])
| | do: [:aClass |
| | Transcript show: 'Initializing class: ', aClass name; cr.
| | aClass initializeOnLoad]
| |
| | and
| |
| | Class >> initializeOnLoad
| | (self class includesSelector: #initialize)
| | ifTrue: [self initialize]
| |
| |
| | so...I am having a problem with seaside with a class and it looks
| | like a problem of the order of the initialize. Do you think
| | something is wrong with our approach? any idea?
| |
| | thanks in advance,
| |
| | --
| | Mariano
| |
http://marianopeck.wordpress.com
| |
| |
|
|
|
|
| --
| Mariano
|
http://marianopeck.wordpress.com
|
|