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.