users@jms-spec.java.net

[jms-spec users] [jsr343-experts] Re: Re: QueueBrowser.getEnumeration

From: John D. Ament <john.d.ament_at_gmail.com>
Date: Mon, 9 Jan 2012 17:31:13 -0500

Rudiger

The ideal case would be the foreach styled loop.

John

On Mon, Jan 9, 2012 at 3:26 PM, Rüdiger zu Dohna <ruediger.dohna_at_1und1.de>wrote:

> @John: You can't do much with that Set than iterate over it, can you?
> Maybe even calculating the size could be expensive.
> @Nigel: Enumerations are just somewhat old fashioned and more ore less
> deprecated. If it was an Iterable (contradicting myself), you could use it
> for an enhanced for-loop.
>
>
> On 2012-01-09, at 19:45, John D. Ament wrote:
>
> I don't see much of a reason to not use a Set, since it should be unique.
> It could be a custom implementation that buffers the messages from the
> server.
>
> Just feels more modern to work with a clean collection rather than an
> enumeration.
>
> John
>
> On Mon, Jan 9, 2012 at 1:39 PM, Nigel Deakin <nigel.deakin_at_oracle.com>wrote:
>
>> Given that a QueueBrowser already provides a method to return an
>> Enumeration, what would be the benefit in additionally returning a Iterator
>> (unless we wanted to add support for remove())?
>>
>> Nigel
>>
>>
>> On 09/01/2012 16:32, Rüdiger zu Dohna wrote:
>>
>> Maybe it should return an Iterator<Message>? ... deliberately not an
>> Iterable! This would make it clear that it's just a snapshot and there's no
>> much use to pass it as a collection around.
>>
>>
>> On 2012-01-09, at 15:01, Nigel Deakin wrote:
>>
>> John,
>>
>> Simply returning a Set isn't very scalable: a queue might contain
>> thousands (or hundreds of thousands) of messages. That's why the existing
>> API returns an Enumeration.
>>
>> (Also, since a Queue is by definition ordered, returning a Set would be
>> throwing away important semantics)
>>
>> Nigel
>>
>> On 09/01/2012 13:40, John D. Ament wrote:
>>
>> Hi Nigel,
>>
>> No, I would leave the existing method, and add a new one:
>>
>> public Set<Message> getMessages() throws JMSRuntimeException { }
>>
>> I think Set is most appropriate, since the messages should be unique.
>>
>> On Mon, Jan 9, 2012 at 7:06 AM, Nigel Deakin <nigel.deakin_at_oracle.com>wrote:
>>
>>> John,
>>>
>>>
>>> On 06/01/2012 10:49, John D. Ament wrote:
>>>
>>>> It may be a bit late, but is it possible for us to provide a set or
>>>> list back that is properly typed (e.g.
>>>> javax.jms.Message) from QueueBrowser?
>>>>
>>>
>>> Can you be more specific about what you are asking for?
>>>
>>> Are you asking for the existing method
>>> Enumeration getEnumeration() throws JMSException;
>>> to be changed to
>>> Enumeration <Message> getEnumeration() throws JMSException;
>>>
>>> or something else?
>>>
>>> Nigel
>>>
>>
>>
>>
>
>