activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <>
Subject [jira] Commented: (AMQCPP-65) Refactor transport creation
Date Thu, 12 Apr 2007 20:33:34 GMT


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

View raw message