> > The basic crux is that both Peter and Leo concur that the Re* methods
> > should be done between suspend() and resume() methods of Resumable. My
> > question is: What if I implement Reconfigurable but not Resumable?
> >
> > My train of thought has been that if Resumable is not implemented, it is
> > up to the Component to manage concurrency issues (i.e. handling a method
> > call while it is re-configuring). This poses no additional
> strain on the
> > Container.
(...)
> Can't see need to require re* components to be suspendable/resumable
> What wa the rationale?
Inversion of Control is one of the core design patterns in Avalon. Having
a Component manage concurrency issues for itself seems like Subversion of
Control to me. It is probably better to modify/inherit the container than
do this (example to disprove that, anyone?).
What I said (I think) previously is that doing this should at least be
recommended at all times.
Following up on that thought it becomes neccessary to suspend() before you
re***().
However, it might be possible for a Component to have no concurrency
issues of any kind regarding the re***() methods (an example would be
where a new logger is passed in using recontextualize(), which can
work perfectly fine if the logger is only used in other lifecycle
methods). Also, it might be possible (can't think of any though) that
there is a valid use case for components which need to manage their
own concurrency.
Based on that, I'm +0 to Berin's proposal. I would still like to
see clear documentation that the 'normal'/'recommended' behaviour is
to only have Re*** Components that are also Suspendable.
> > Should the "Re*" interfaces follow the same order as the normal
> > versions (i.e. "Reconfigurable" follows same order as "Configurable")?
>
> +1
+1
>
> >
> > [NOTE]
> > If it is NOT an error condition to not include Resumable, what should
> > the contract be?
>
> How about:
> if component instanceof Suspendable then re* will be called between
> suspend() and resume()
> Otherwise re* maybe called at anytime.
> if more than one re* called, then order will be as for non-re* lifecycle
> methods
my thoughts exactly =)
cheers,
Leo
PS: I'm done with me exams now, and just today fired up my editor for
the first time in oh, two weeks. Will resume doccing =)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]