Listeners can now receive Loggers. I will look into exposing the other events 
and their parameters a bit later on - maybe Monday night. If I forget - prod 
me ;)

On Thu, 10 Jan 2002 22:19, Stephen McConnell wrote:
> Peter Donald wrote:
> [on BlockListener]
>
> > Stephen do you recall when that was or have a pointer into the archives ?
>
> Pete:
>
> Here is your email to me which I have not yet replied to.
> (I was swamped by external events at the time and need to get
> my head back around this stuff - but not right now - other things
> that I have to deal with just at the moment).
>
> Steve.
>
> =====================================================================
>
> > -----Original Message-----
> > From: Peter Donald [mailto:[EMAIL PROTECTED]]
> > Sent: Sunday, 18 November, 2001 02:23
> > To: Avalon Developers List
> > Subject: Re: BlockListener and LifecycleHelper
> >
> > On Sun, 18 Nov 2001 00:27, Stephen McConnell wrote:
> > > Peter Donald wrote:
> > > > On Sat, 17 Nov 2001 00:16, Stephen McConnell wrote:
> > > > > I want LifecycleHelper to invoke component lifecycle phases
> > > > > on a listener.
> > > >
> > > > right. I don't mind LogEnabled but I don't like any of the others ;)
> > > >
> > > > > You objected to this because you said that
> > > > > listener logic should reside in a block.
> > > >
> > > > I said there was no such thing as listener logic. Listeners are
> > > > just glue to stick together blocks appropriately ;)
> > >
> > > And I said that happended to by your use-case, not mine :-)
> >
> > Right but the functionality you want to implement is already
> > supported. My
> > use-case was designed for application wide aspects / policy /
> > facilities /
> > whatever. So far you have yet to say where this model breaks down in your
> > case. You just said it does. I need facts not opinions ;)
> >
> > So what is missing from the model I propose that would;
> > * degrade quality of implementation/design
> > * make it impossible to implement some functionality
> > etc
> >
> > The only thing I have considered is maybe that not enough events are
> > supported. It may be useful to support other events such as
> >
> > void applicationStarting() //before blocks are startedup
> > void applicationStarted() //when all blocks are started up
> > void applicationStopping() //before blocks are shutdown
> > void applicationStopped() //when all blocks are shutdown
> > void applicationFailure() //when application fails to load
> >
> > It is possible that the above may be useful to add ... not sure aty this
> > stage. (or at minimum the appStarted + appStopping)
> >
> > > > coposition can't be done as there is no notion of dependencies.
> > > > initialization shouldn't really be done as no listener should be
> > > > allocating any significant resources (same reason for KB'ing
> > > > dispose)
> > >
> > > Agree - I should not have included compose (my mistake).  Let me
> > > outline the "component" interface that I want to see support
> > > for and the reasons why:
> > >
> > >    LogEnabled - If I'm logging anything within an object that's
> > >      declared as a listener, I don't want to have to set-up
> > >      another logger - just want to be supplied automagically
> >
> > reasonable.
> >
> > >    Contextualizable - this one is a little tricky - the code
> > >      I have is doing validation of the environment before blocks
> > >      kick in - validation needs the information about the
> > >      application context (available under the application meta-data
> > >      receivable under contextualization of a listener).
> >
> > hmmm - is this a local modification? The only thing you can get from
> > BlockContext as far as I see is the Application name and application dir.
> > Have you modified it locally to get other stuff?
>
> [yep - its a local modification - sorry about that]
>
> > >  To veto
> > >      start-up, I need to be in application space (no block space)
> > >      because I can throw an exception and halt/suspend start-up.
> >
> > Would adding notification of the events mentioned above work for this?
> >
> > >    Initializable - Because I'm following Avalon component
> > >      pattern and this is the trigger to start working and I don't
> > >      like changing that without having some tangible
> > >      justification.
> >
> > I need to know what "work" you are doing before I can judge whether it is
> > something we want to support ;)
> >
> > > > > I need to understand why your objecting to that.
> > > >
> > > > Put it this way. I see listeners as not doing any logic - they are
> > > > declarative constructs for establishing relationships. I want
> >
> > to know why
> >
> > > > this will not work in your case.
> > >
> > > 1. because I am NOT wiring blocks together
> > > 2. because I don't have an alternative mechanism
> > > 3. because I object to assertion that the current listener declaration
> > >    is a valid "declarative constructs for establishing relationships"
> > >    (it only references a class name within the scope of the application
> > >    and declares nothing about relationships)
> > > 4. because I'm dealing with application policy
> > > 5. because I'm stubborn and you haven't given me a good tangible
> > >    technical argument why this is inappropriate
> > > 6. because I wanted to have a least six bullet points
> >
> > ;P
> >
> > > > So far you have only indicated that you
> > > > "want" to do logic in listeners. I want to know why the listeners as
> > > > declaratives model doesn't work in your case or makes it harder
> > > > to construct your application. So far I haven't seen any
> >
> > indication that
> >
> > > > this is so ;)
> > >
> > > I'm handling application level policy.  The registration of a listener
> > > is the only access point I have to plug-in an application-level
> >
> > facility.
> >
> > right.
> >
> > > This
> > > is a different use-case to yours - but that does not make it
> >
> > invalid - just
> >
> > > different.  All I'm proposing is that IF a class, registered as
> >
> > a listener,
> >
> > > exposes any of the above component interfaces, then, give the
> >
> > class what it
> >
> > > needs to do its stuff correctly.
> >
> > You still haven't really told me exactly what you want to do and why the
> > current model doesn't work for you. If LogEnabled was supported and some
> > extra events were added (like above) would you be able to
> > implement what you
> > want to implement?
> >
> > --
> > Cheers,
> >
> > Pete

-- 
Cheers,

Pete

--------------------------------
 These aren't the droids you're 
 looking for. Move along. 
--------------------------------

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to