yes, understood and agreed.
BTW I still find redundant that the same field, used with the same
semantic, is present in Config,Pool and Factory, my proposal was about
keeping the Config only - immutable fields can be declared there - and
remove config parameters from Factory/Pool, that will require a Config
or use the default one.
Otherwise any suggestion is much more than welcome, it would be a
shame IMHO not improving the design.
Thanks for discussing about this topic, have a nice day,
Simo

http://people.apache.org/~simonetripodi/
http://www.99soft.org/



On Sat, Oct 16, 2010 at 2:25 AM, sebb <seb...@gmail.com> wrote:
> On 15 October 2010 17:01, Simone Tripodi <simone.trip...@gmail.com> wrote:
>> Hi all guys,
>> there are Generic(Keyed)ObjectPool(Factory) that (in pairs, Pool and
>> related factory) share the same kind of information, replicated in the
>> related Config class.
>>
>> I wonder if we can improve that design and remove that information
>> redundancy: I propose to keep the Config classes only, put them not as
>> inner class, in order to remove the circular dependency between
>> factory/pool and remove also the not so comfortable (at least for me)
>> n-arguments constructors.
>> So, the GenericObjectPool, instead of having all these constructors,
>> could work only with:
>>
>> public GenericObjectPool(PoolableObjectFactory<T> factory) {
>>    this(factory, new Config());
>> }
>>
>> public GenericObjectPool(PoolableObjectFactory<T> factory, Config config) {
>>    this.factory = factory;
>>    this.config = config;
>> }
>>
>> both factory and config can be final; if users need to reconfigure the
>> pool at runtime, invoke the setter and modify the interested value
>>
>> pool.getConfig().setWhenExhaustedAction(WhenExhaustedAction.GROW);
>>
>> I'd extend later the same approach also to other Pools... WDYT?
>
> The advantage of using ctor parameters is that they can be saved in a
> final field.
> The config approach is OK for parameters that need to remain mutable,
> but can impose additional synch. requirements for settings that must
> not be changed during the life of the pool.
>
> For example, I suspect LIFO should be immutable, and should therefore be 
> final.
>
>> Many thanks in advance,
>> Simo
>>
>> http://people.apache.org/~simonetripodi/
>> http://www.99soft.org/
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

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

Reply via email to