[prev in list] [next in list] [prev in thread] [next in thread] 

List:       avalon-dev
Subject:    Re: ROLE & Lifecycles in C#
From:       Stephen McConnell <mcconnell () apache ! org>
Date:       2003-07-30 14:58:11
[Download RAW message or body]



Geer, Christopher S wrote:

> 
> 
> > -----Original Message-----
> > From: Berin Loritsch [mailto:bloritsch@apache.org]
> > Sent: Wednesday, July 30, 2003 9:14 AM
> > To: Avalon Developers List
> > Subject: Re: ROLE & Lifecycles in C#
> > 
> > Geer, Christopher S wrote:
> > 
> > 
> > > > If there is already a IDisposable.Dispose(), then why not use it?
> > > > 
> > > > 
> > > What
> > > 
> > > 
> > > 
> > > > context is it used with?  I see no sense in reinventing the wheel.
> > > > 
> > > > 
> > > I agree we should use the provided interface if we can.
> > > 
> > > 
> > > 
> > > 
> > > > Short list is:
> > > > 
> > > > Configurable
> > > > LookupEnabled
> > > > Initializable
> > > > Disposable
> > > > 
> > > > 
> > > I'm assuming that you mean to role start() and stop() into
> > > 
> > > 
> Initializable
> 
> 
> > > or something? Also, what about Suspendable, Reconfiguration and the
> > > other Re's? Personally I beleive that those are very important
> > > interfaces to support. While you could just role those into the list
> > > above that would almost require everyone support them, which would
> > > 
> > > 
> mean
> 
> 
> > > if someone didn't want them they would just have empty methods,
> > > 
> > > 
> giving
> 
> 
> > > someone a false belief that the compoenent actually supported them.
> > > 
> > > 
> > All the Re's should be removed until we decide what to do with them.
> > Noone has come up with a good idea for any of the Re's or how to
> > 
> > 
> support
> 
> 
> > them.  They are legacy interfaces that in hindsight would have been
> > 
> > 
> better
> 
> 
> > to nix back when we made the Avalon 4.0 baseline.
> > 
> > 
> 
> Getting rid of these for now doesn't really bother me too much.
> 
> 
> 
> > In the future, when we have a requirement for something along these
> > 
> > 
> lines
> 
> 
> > we can discuss how to do it, what the contracts should be, and then
> > 
> > 
> expand
> 
> 
> > the framework.
> > 
> > As to Startable [start() and stop()], it seems redundant when we have
> > Initializable and Disposable.  Again, Suspendable is one of those
> > 
> > 
> things
> 
> 
> > that loses any kind of usefulness if there is no reason to temporarily
> > suspend a component (reconfiguration, etc.).
> > 
> > 
> 
> I disagree. I think Startable is an absolutely necessary interface.
> 

I agree.

> There are perfectly valid cases where components may not need to be
> "initialized" but do need to be started and stopped. Also, stop() and
> dispose() have two different functions also, in my opinion. For example
> (and this might not be the best example but...) if you were building a
> web server, you might want to stop the web server from taking requests
> and then collect metrics from the server (while its not changing) before
> disposing of it.
> 

The start stop pair make total sence when you component is a server 
style component.  Initialization is the point where the component 
validates itself relative to everything supplied to it - and start 
signals to the component to commence the process of handling doing 
whatever it does - normally handling requests or whatever.

> 
> While you could wrap the start() method into the Initializable interface
> if we reuse the .NET IDisposable interface we won't be able to wrap the
> stop() method into it.
> 
> 

What's the problem with keeping the notions seperate?


<snip>

> I think there needs to be a way to modify a components configuration without \
> disposing of it and loosing its state information. 
Agree.

Cheers, Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org
http://www.osm.net

Sent via James running under Merlin as an NT service.
http://avalon.apache.org/sandbox/merlin




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic