On Mon, Jul 22, 2002 at 12:30:50PM -0400, Berin Loritsch wrote:
> > From: Marcus Crafter [mailto:[EMAIL PROTECTED]]
> >
> > When are the following Re* methods actually intended to
> > be invoked
> > on implementing Components:
> >
> > o Recontextualizable
> > o Recomposable
> > o Reconfigure/Reparameterizable
> >
> > I can imagine a change in the .roles/.xconf files causing
> > components to be reconfigured and given a new component manager
> > reference, but perhaps that's wrong (?).
>
> Really, the only Re* interfaces that I think really should be used
> are the Reconfigurable/Reparameterizable ones. Fortress (and I think
> Merlin as well) can easily remap role/implementations at runtime so
> there is no real need to pass in a new Component/ServiceManager.
> Technically speaking, the same can be said of Recontextualizable.
>
> However, practicality may mandate that configuration, parameterization,
> and contextualization require official objects.
>
> The Recomposable/Reserviceable interfaces probably should be altered to
> something along these lines:
>
> interface Recomposable
> {
> void remap();
> }
>
> Which would be a signal from the container that the role/implementations
> have been changed--and the component can update its references
> accordingly.
*nod*. Thanks for the explanation.
This all came from thoughts about adding support for runtime
modifiable configuration files - ie. make a change in your .xconf
file, and the changes are loaded into the running container
automatically without requiring a restart.
Such functionality is presently in Cocoon (ie. change your
sitemap.xmap, or cocoon.xconf and the system is reinitialized without
restart). I think it would be good to have this at the container level
as that's what these configuration files are really configuring
(ie. cocoon components, and cocoon sitemap components). What do
you think ?
If we'd like to have this feature, what should an implementation do
when a change in .xconf or .roles file is made ?
o Load new configuration/roles
o Call reconfigure() on Reconfigurables, call reparameterize() on
Reparameterizables.
o Call recompose() on Recomposables with your new remap() method ?
or something else ?
Just testing the water at the moment to see if its worth pursuing ?
Cheers,
Marcus
--
.....
,,$$$$$$$$$, Marcus Crafter
;$' '$$$$: Computer Systems Engineer
$: $$$$: ManageSoft GmbH
$ o_)$$$: 82-84 Mainzer Landstrasse
;$, _/\ &&:' 60327 Frankfurt Germany
' /( &&&
\_&&&&'
&&&&.
&&&&&&&:
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>