> -----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]