users@jms-spec.java.net

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

From: Rüdiger zu Dohna <ruediger.dohna_at_1und1.de>
Date: Mon, 9 Jan 2012 21:26:00 +0100

@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
>>>>
>>
>