On Thu, Nov 26, 2009 at 6:03 AM, Marnie McCormack
<marnie.mccorm...@googlemail.com> wrote:
> Hi Rajith & Rafi,
>
> I should be able to shed some light on the migration implications of this
> change.
>
> To check that I've understood what you're proposing - so the existing
> BindingURL implementation would be used for the 0-8/0-9 codepaths and you're
> only writing an impl for the 0-10 path ?
>
> Regards,
> Marnie

Marnie,

Actually I am hoping to have support for both formats in the 0-10
client (via a jvm switch) as I am sure there are several folks using
0-10 in production.
For time being I only envisioned having the new format for 0-10 and
above, as I am not sure that 0-8/0-9 client will necessarily benefit
from the new format.
Is this fine with you?

Regards,

Rajith

>
>
> On Wed, Nov 25, 2009 at 11:06 PM, Rafael Schloming <rafa...@redhat.com>wrote:
>
>> Rajith Attapattu wrote:
>>
>>> Hi All
>>>
>>> I have been thinking about adding support in the JMS client for the
>>> new address format currently implemented in python and c++ by Rafi and
>>> Gordon.
>>> I am exploring the viability of the following approach. Comments and
>>> suggestions are most welcomed.
>>> Please feel free to suggest class names etc. It's not easy coming up
>>> with names :).
>>>
>>> Given that AMQDestination is used all over the code base, I am
>>> thinking about using an incremental approach to minimize disruptions.
>>> I have tried a prototype of this idea and it seems to work reasonably
>>> well.
>>>
>>> 1. Extract an interface from the current AMQDestination class and name
>>> the interface as AMQDestination (which extends the
>>> javax.jms.Destination).
>>>
>>
>> Is it possible for you to post the interface you extracted?
>>
>>
>> 2. The current AMQDestination class will be renamed to
>>> AMQBindingURLDestination which implements AMQDestination
>>>
>>> Step 1 & 2 will ensure that the current code compiles and that
>>> majority of the code remains unchanged.
>>> Since the current AMQDestination abstract class is based on the
>>> binding URL concept I suggest to rename it to AMQBindingURLDestination
>>>
>>> 3. Add an abstract class AMQAddressDestination that implements
>>> AMQDestination.
>>> 4. Add AMQAddressDestination_0_10
>>> 5. Add support in AMQSession_0_10, BMProducer/Consumer_0_10 to check
>>> if the destination type and support appropriate behaviour.
>>>
>>> Step 3 will add generic support for the new addressing format and step
>>> 4 a mapping to the 0_10 syntax.
>>> Step 5 will provide the required functionality to support the address
>>> format while retaining backwards compatibility.
>>>
>>> 5. Later on we can look at making AMQDestination a proper interface
>>> rather than a stop gap measure.
>>>    In order to do this a fair bit of tinkering would be needed in the
>>> AMQSession, BMProducer/Consumer etc..
>>>
>>> We would obviously need a parser for the new addressing format.
>>> I believe Rafi has volunteered to whip that as he was working on one
>>> for python :)
>>>
>>
>> I'm happy to provide one for Java as well. As a first step I'll document
>> and post the syntax. Writing a Java parser should be quick, I just want to
>> get as much feedback as I can first, so that the syntax is as final as
>> possible before doing it.
>>
>> One question I have is about how we'll provide access to alternate syntaxes
>> via jndi configuration and the JMS API (i.e.
>> createQueue(...)/createTopic(...)). I can think of a few options, e.g.
>> switching between syntaxes using a system/connection property. Or maybe
>> having some sort of meta-syntax that that would permit usage of the two
>> syntaxes side by side, e.g. "OLD: ...", "NEW: ...", or possibly some
>> combination of the two approaches.
>>
>> One of the things I'm unsure of here is what we need to provide in terms of
>> backwards-compatibility/migration support for our users, e.g. do we need to
>> provide the ability to use both syntaxes side-by-side on the same
>> connection, or can we expect people to be using only one syntax or the
>> other? Are there other migration options/issues we should be considering?
>>
>> --Rafael
>>
>>
>> ---------------------------------------------------------------------
>> Apache Qpid - AMQP Messaging Implementation
>> Project:      http://qpid.apache.org
>> Use/Interact: mailto:dev-subscr...@qpid.apache.org
>>
>>
>



-- 
Regards,

Rajith Attapattu
Red Hat
http://rajith.2rlabs.com/

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org

Reply via email to