> -----Original Message----- > From: Phil Steitz [mailto:[email protected]] > Sent: Tuesday, October 12, 2010 08:17 > To: Commons Developers List > Subject: Re: [POOL] generics on KeyedObjectPool > > On 10/12/10 10:11 AM, Mark Thomas wrote: > > On 12/10/2010 15:03, James Carman wrote: > >> Is it really realistic to think that a pool would support multiple > >> object types? I've never really seen that in practice, but I guess it > >> could happen. Just seems weird to me. > > > > +1. I'm having a hard time coming up with a use case where those objects > > wouldn't support some common interface. And if that interface is Object, > > just declare a pool of type Object. > > > > Lets not make things more complicated than they need to be. > > > > Mark > > > >> > +1 - another thing to consider is how supporting non-type-homogenous > keyed pools complicates the contract of KeyedPoolableObjectFactory. > I have always seen KeyedObjectPools as really just partitioned > pools with pooled instances differing (at most) on instance properties. > > If we do get the requirement to support keyed pools with different > types of objects by key, we can add a new pool that supports a keyed > map of factories for the different instance types.
+1, yes, a specialized class (if and when we need it) feels like the right way to go. Gary > > Phil > >> > >> On Tue, Oct 12, 2010 at 9:49 AM, Simone Tripodi > >> <[email protected]> wrote: > >>> Hi Brent! > >>> sounds reasonably good, the only worry I've on it is about the method > >>> > >>> <V> V borrowObject(K key); > >>> > >>> because I don't know the type of V; speaking in therms of examples: > >>> > >>> new MyKeyedObjectPoolImpl<String>().borrowObject("one") = ??? > >>> > >>> So the APIs have to be improved following the Jame's suggestions. > >>> Have a nice day! > >>> Simo > >>> > >>> http://people.apache.org/~simonetripodi/ > >>> http://www.99soft.org/ > >>> > >>> > >>> > >>> On Tue, Oct 12, 2010 at 3:29 PM, Brent Worden<[email protected]> > wrote: > >>>> The javadoc on KeyedObjectPool states 'A keyed pool pools instances of > >>>> multiple types.' However, the new parametrization on KeyedObjectPool > allows > >>>> for only a single instance type. > >>>> > >>>> To allow for pooling multiple typed instances, should the instance type > >>>> parameter be removed from the interface declaration and placed on the > >>>> relevant method declarations? In other words, replace: > >>>> > >>>> public interface KeyedObjectPool<K,V> { > >>>> ... > >>>> } > >>>> > >>>> with: > >>>> > >>>> public interface KeyedObjectPool<K> { > >>>> > >>>> <V> V borrowObject(K key); > >>>> > >>>> <V> void invalidateObject(K key, V obj); > >>>> > >>>> <V> void returnObject(K key, V obj); > >>>> ... > >>>> } > >>>> > >>>> Thoughts? > >>>> > >>>> Brent. > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> 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] > >>> > >>> > >> > >> --------------------------------------------------------------------- > >> 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] > > > > > --------------------------------------------------------------------- > 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]
