Hi,

Doru asked me how does Epicea listen this information, and I created a snippet to demo it *in a plain Pharo 5 image* (no need to load Epicea before). Maybe somebody else is interested, that's why I share it with everybody.

You can open a Transcript and evaluate the following snippet. After evaluation, you can add new methods in Nautilus and see the log in the Transcript. (The code is not very nice).

Cheers,
Martin



"Listen load start"
Job jobAnnouncer
when: JobStart
do: [ :aJobStart |
| owner |
owner := aJobStart job owner.

(owner isKindOf: MCVersionLoader)
ifTrue: [ ('Starting to load ', owner versions asArray asString) logCr ] ].
"Listen load end"
Job jobAnnouncer��
when: JobEnd
do: [ :aJobEnd |
| owner |
owner := aJobEnd job owner.

(owner isKindOf: MCVersionLoader)
ifTrue: [ ('Ending to load ', owner versions asArray asString) logCr ] ].

"Listen changes in the middle"
SystemAnnouncer uniqueInstance��
when: MethodAdded
do: [ :aMethodAdded |
| mcLoaderJobOrNil |
mcLoaderJobOrNil :=��
Job current
ifNil: [ nil ]
ifNotNil: [ :currentJob |
currentJob��
lookup: [ :job | job owner isKindOf: MCVersionLoader ]
ifNone: [ nil ] ].
(aMethodAdded methodAdded printString, ' --- ',
(mcLoaderJobOrNil
ifNil: [ 'no info' ]
ifNotNil: [ 'while loading ', mcLoaderJobOrNil owner versions asArray asString ])) logCr ].


"Try it loading"
Gofer it
smalltalkhubUser: 'MartinDias' project: 'AlarmClock';
package: 'AlarmClock';
load.