[Seaside-dev] question on value of startup and shutdown lists
being required
Philippe Marschall
philippe.marschall at gmail.com
Mon Mar 24 13:09:39 UTC 2008
2008/3/23, Dale Henrichs <dale.henrichs at gemstone.com>:
> 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?
It makes loading classes harder and knowing what to implement harder.
Right now you can use normal class initialization in Seaside-Core
(class >> #initialize) and you can expect SeasidePlatformSupport to be
present. With your change initialization of classes in Seaside-Core
would have to happen in Seaside-Platform-Extensions.
If you want to know what methods you have to implement you can look at
WASqueakPlatform and you should have most of them.
As for the file stuff a lot of this can be implemented with SPort and
has already been done so in Seaside-Sport-Core.
Cheers
Philippe
More information about the seaside-dev
mailing list