2015-12-04 13:39 GMT+01:00 Christophe Demarey <christophe.dema...@inria.fr>:

> Hi,
>
> Guillermo, Pablo and I started to work on a new implementation for the
> image startup / shutdown list.
> The old implementation misses domain objects, polluted the SmalltalkImage
> class and introduced crazy dependencies to other packages.
>
> So, what is Session Manager?
>
>    - a replacement of the Session class (is now WorkingSession)
>    - a rewrite of startup / shutdown list with domain objects
>       - SessionManager: can create new sessions and manage categories.
>       Also provide a facade to register new session handlers. Session manager
>       provide sthe list of handlers by order of priority (categories order and
>       categories priority) either for the startup or the shutdown,
>       - WorkingSession: unique object for the current smalltalk session
>       (I.e. between a startup and a shutdown). On each image startup the 
> current
>       session is invalidated and a new session is created. Define how errors
>       should be handled. Run the startup / shutdown process.
>       - SessionCategory: we defined some well known categories for
>       startup / shutdown: system, network, GUI, tools and there is room to add
>       user specific categories, It help to run the handler at the right time
>       without caring about the whole order.
>       - and SessionHandlers: handleSession for a specific class or any
>       other object.
>    - the shutdown list is now simply the startup list reversed
>    - we also refactored error handling at startup by using the UIManager
>    and StartupUIManager. It allowed to remove ugly checks like #isInteractive,
>    isHeadless in error handling methods and centralize that in UIManager.
>
>
> You can find an image with the new SessionManager in action here:
> https://ci.inria.fr/pharo-contribution/job/SessionManager/
>
> As it is a critical piece of code, could you play / test it a bit before
> we integrate this new mechanism in the Pharo image?
>

Looks good. What are the main critical startup/shutdown users( classes)
that should be tested?
I did some tests with AthensSceneView (uses NB and calls Smalltalk session
for reinit external resources) and Roassal.
I got one image startup failure, but I couldn't reproduce it yet. Maybe I
did image save and image save and quit, too quick.


>
> Regards,
> Christophe
>
> ps: Pharo tests pass
> ps2: There is still some code to clean / remove from the old startup
> management system.
>

Reply via email to