> -----Original Message-----
> From: David Graham [mailto:[EMAIL PROTECTED] 
> Sent: Friday, February 28, 2003 1:53 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [POOL] Pool listeners
> 
> 
> I would make PoolListener more closely match the Java 
> listener style.  That 
> is:
> 1. PoolListener extends java.util.EventListener

Makes sense.

> 2. The methods accept an event object that extends 
> java.util.EventObject (maybe call it PoolEvent).

Again, makes sense.
 
> 3. The methods shouldn't throw Exception.  They should throw specific 
> exception types or non at all.

I thought about declaring something like ListenerException to be thrown
instead.  ListenerException would be a subclass of NestableException for
commons-lang.  Would this be better?

Consider a pool of database connections.  A listener is configured to
handle onBorrow().  The goal is to execute a stored procedure or
something before the connection is returned from the pool.  There is the
possibility that a SQLException could be thrown during the execution.
Of course it would have to be trapped within the listener code and
rethrown as a ListenerException.  This just give the person writing the
listener the option to either silently ignore the failure or to throw an
Exception.

> I like the concept.
> 
> David
> 
> 
> 
> 
> >From: "Quinton McCombs" <[EMAIL PROTECTED]>
> >Reply-To: "Jakarta Commons Developers List"
> ><[EMAIL PROTECTED]>
> >To: <[EMAIL PROTECTED]>
> >Subject: [POOL] Pool listeners
> >Date: Fri, 28 Feb 2003 13:19:48 -0600
> >
> >I am working on a patch to allow listeners to be added to pools that 
> >will receive notifications on various events.  Does anyone object to 
> >having this functionality included?
> >
> >Here is the design -
> >
> >I was thinking about adding support for a PoolListener interface for 
> >the pool component.  Object which implement this interface could be 
> >added to any ObjectPool or KeyedObjectPool.  The listener would be 
> >notified on the following events:
> >
> >- An object is borrowed from the pool
> >- An object is returned to the pool
> >- An new object is created and added to the pool
> >- An object is removed from the pool
> >
> >addListener(PoolListener) would be defined in ObjectPool and 
> >KeyedObjectPool.  It would be implemented in BaseObjectPool and 
> >BaseKeyedObjectPool.  Also in the previous two Base* 
> classes, protected 
> >methods would be added to handle sending out the 
> notifications to the 
> >list of listeners.
> >
> >public interface PoolListener
> >{
> >     /**
> >      * Executed immediatedly before an object is returned 
> from the pool.
> >      *
> >      * @param obj The object being returned
> >      * @throws Exception generic exception
> >      */
> >     void onBorrow(Object obj) throws Exception;
> >
> >     /**
> >      * Executed immediately after an object is returned to the pool.
> >      *
> >      * @param obj the object being returned
> >      * @throws Exception generic exception
> >      */
> >     void onReturn(Object obj) throws Exception;
> >
> >     /**
> >      * Executed immediately after a new object is created 
> but before it
> >      * is added to the pool.
> >      *
> >      * @param obj  the newly created object
> >      * @throws Exception generic exception
> >      */
> >     void onCreate(Object obj) throws Exception;
> >
> >     /**
> >      * Executed when an object is removed from the pool.
> >      *
> >      * @param obj The object being removed.
> >      * @throws Exception generic exception
> >      */
> >     void onDestroy(Object obj) throws Exception;
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> _________________________________________________________________
> Tired of spam? Get advanced junk mail protection with MSN 8. 
> http://join.msn.com/?page=features/junkmail
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

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

Reply via email to