On 28 October 2010 15:16, Simone Tripodi <simone.trip...@gmail.com> wrote:
> Hi again James, all,
> please review my last commit[1], I refactored the Config and related
> (Keyed)StackObjectPool(Factory), I tried to implements the concepts
> we've been discussing in this thread.

The public StackObjectPoolConfig ctor repeats the settings available
in the nested Builder.
I'm not sure I see the point of having both. Or perhaps the ctor is
supposed to be private?
Also, I don't like the way the ctor resets the parameters if they are
out of range, especially as this is not documented.

==

The StackObjectPool ctor calls the overridable method
reconfigure(StackObjectPoolConfig) which is not safe when subclassing.
Easily fixed by having a private method with the shared code.

Also, reconfigure() updates maxSleeping, but is not synchronized, so
may not publish maxSleeping correctly.

Similar considerations apply to the other classes.

> If this fits to our vision, I can follow applying the refactor to
> Generic(Keyed)ObjectPool(Factory).
> Many thanks in advance!!!
> All the best,
> Simo
>
> [1] http://svn.apache.org/viewvc?rev=1028302&view=rev
>
> http://people.apache.org/~simonetripodi/
> http://www.99soft.org/
>
>
>
> On Thu, Oct 28, 2010 at 2:46 PM, Simone Tripodi
> <simone.trip...@gmail.com> wrote:
>> Hi James,
>> thanks, understood. I take in charge yet another cycle of refactoring,
>> I'll ping you all when in trouble about something :)
>> Have a nice day and thanks for the feedbacks!
>> Simo
>>
>> http://people.apache.org/~simonetripodi/
>> http://www.99soft.org/
>>
>>
>>
>> On Thu, Oct 28, 2010 at 2:12 PM, James Carman
>> <ja...@carmanconsulting.com> wrote:
>>> On Thu, Oct 28, 2010 at 6:50 AM, Simone Tripodi
>>> <simone.trip...@gmail.com> wrote:
>>>> That's why I wouldn't follow the option #2; but please, explain me
>>>> which are the side effects of that design, so I can avoid to repeat
>>>> the same mistake in the future.
>>>>
>>>
>>> If you make the config objects immutable, you can just keep the config
>>> references around and skip the copying in the reconfigure() method.  I
>>> don't think it would be difficult to implement things this way.  We
>>> don't want to let the JMX stuff dictate our API too much.  The JMX
>>> stuff can be less "elegant" for sure.  Consider it to be just a UI
>>> layer on top of our stuff.
>>>
>>> ---------------------------------------------------------------------
>>> 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