Refactor transport creation
---------------------------
Key: AMQCPP-65
URL: https://issues.apache.org/activemq/browse/AMQCPP-65
Project: ActiveMQ C++ Client
Issue Type: Improvement
Environment: NA
Reporter: Nathan Mittler
Assigned To: Nathan Mittler
Priority: Minor
Fix For: 2.1
Currently, the chain of transports (TcpTransport, ResponseCorrelator,
IOTransport, etc) is wired together in the TcpTransportFactory class. It would
be cleaner to have an AggregateTransportFactory that is responsible for
"wiring" the chain.
The current chain of transports is as follows:
ResponseCorrelator->TcpTransport->IOTransport
In addition, by moving the task of wiring outside of the TcpTransportFactory,
we give ourselves the ability to support multiple network protocols such as UDP.
The new AggregateTransportFactory would always be used by the library,
regardless of the transport options provided by the user. It would be
responsible for reading the options and adjusting its wiring accordingly. A
list of notional parameters might include:
transport.networkProtocol - Currently could only be "tcp". If not provided,
defaults to "tcp".
transport.useAsyncSend - If "true" an AsyncSendTransport is wired into the
chain. Defaults to "false".
transport.enableLogging - If "true" adds a transport filter that logs the data
being sent/received. Defaults to "false".
Perhaps we could even define the order in which the transports are wired.
Maybe a configuration file could be read in that defines where to stick the
transports in the chain.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.