[Seaside-dev] question on value of startup and shutdown lists being required

Dale Henrichs dale.henrichs at gemstone.com
Sun Mar 23 18:54:01 UTC 2008


Philippe Marschall wrote:
> One thing to keep in mind is package loading and package
> initialzation. Right now is looks like this:
> - provide Continuation
> - provide SeasidePlatformSupport
> - "normally" load Seaside-Core where "normally" means at the end
> happends class initialization
>
> The way I interpret 3 between loading the code and #initalize-ing the
> classes some other code has to be loaded in this case WAExternalId
> class >> #registerForStartup.
>
> Cheers
> Philippe
>   
In my earlier attempt at 3, #startup and #registerForStartup need to be 
platform specific methods. I can make startup platform independent (with 
a platform-specific extension method to Random), but I'm stuck with 
#registerForStartup as a problem - it would be nice if there were a post 
Seaside-Core platform-specific package.

Perhaps we can create a Seaside-Squeak-Extensions (and 
Seaside-GemStone-Extensions) package for the handful of extensions that 
are currently needed (including the squeak-specific 'cyclic dependency' 
extensions).

This approach would certainly solve the registerForStartup problem right 
now. I assume that as I move forward with my port, I will find other 
places where a post core load will be useful. There already is a 
platform-specific package for development extensions, so I assume the 
we'll end up with platform-specific core extensions in more areas.

You know, if we use a platform-specific extensions package, we can 
eliminate SeasidePlatformSupport - I don't know if that would be a good 
or bad thing. It is convenient to manage things in one spot, but given 
a  thorough test suite (which is already in place for most if not all of 
the base class extensions) it isn't necessary....95% of the references 
to SeasidePlatformSupprt messages are from a single method or a single 
class.

If we do eliminate SeasidePlatformSupport, then the platform Core 
package (except for Continuations) can be loaded after Seaside Core.

What do you think?

Dale



More information about the seaside-dev mailing list