Review Board 1.7.22

QPID-3345: restore/add ability to use sys props to select the NetworkTransport used to make/accept connections

Review Request #1087 - Created July 12, 2011 and updated

Keith Wall
QPID-3345: transport implementations for client/broker sides controllable via new System Properties and Reflection.
Additional unit test and exercised by existing system test suite (0-9-1/0-10 code paths)
Posted (July 13, 2011, 4:04 a.m.)


Looking at the Transport class, I see that transports are choosen based on the AMQP protocol version.

While it is true that this can be easily overridden using qpid.transport system property, it would have been nice if we had the transport implementations independent of the protocol versions.

Perhaps this is the case, and the map is just there to specify the default (or preferred) transport for each version?

Is this approach was taken due to the 0-8,0-9 version code paths are heavily tied to MINA (I haven't really looked at the code in this area for a long time) ?  
  1. No, for the client, user can either override all transports (via -Dqpid.transport) or by protocol version (via -Dqpid.transport.v0_10 etc).
    The objective of this Jira was merely to reintroduce plugability of the existing transports.
    The next step will be the testing of the IoNetworkTransport implementation against 0-8..0-9-1 so that it can become the default for all protocols.   This will take us the next step towards making the use Mina on the client optional.  This is a reasonably complex area, so I think an incremental approach makes sense.
  2. Gotcha. Thanks for the answers.
Ship it!
Posted (July 13, 2011, 4:13 p.m.)
I looked at the patch from the client side and it looks good to me.
I am happy with the direction you are taking.