You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2007/04/12 22:33:34 UTC

[jira] Commented: (AMQCPP-65) Refactor transport creation

    [ https://issues.apache.org/activemq/browse/AMQCPP-65?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_39001 ] 

Timothy Bish commented on AMQCPP-65:
------------------------------------

Refactored the Transport layer a bit, creation of a transport is now done by the TransportBuilder class.  This class know how to wire the transports correctly.

Had to touch a lot of code to get all this working, will need to rerun leak checks etc.

> 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.