commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Phil Steitz <phil.ste...@gmail.com>
Subject Re: [POOL] generics on KeyedObjectPool
Date Tue, 12 Oct 2010 15:17:18 GMT
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.

Phil
>>
>> On Tue, Oct 12, 2010 at 9:49 AM, Simone Tripodi
>> <simone.tripodi@gmail.com>  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<brent.worden@gmail.com> 
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: dev-unsubscribe@commons.apache.org
>>>> For additional commands, e-mail: dev-help@commons.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>>> For additional commands, e-mail: dev-help@commons.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>> For additional commands, e-mail: dev-help@commons.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>


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


Mime
View raw message