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.

Reply via email to