MinaProducer is coded to create a Mina connector (client mode socket).
MinaConsumer is coded to create a Mina acceptor (server mode socket).
Additionally, it appears a producer (client mode socket) is created for a "to" route mapping and a consumer (server mode socket) is created for a "from" route mapping.
This means an endpoint cannot be created in which the session is initiated by a client and messages are routed "to" the client.
The opposite is also true, an endpoint with a "from" route mapping cannot establish a connection to a tcp server.
This is a major limitation, as we do not often have control over the systems with which we are interfacing.
Perhaps, the mina::tcp URI could have a parameter the sets the socket mode: tcp.mode=server or tcp.mode=client.
Hope this make sense, thanks!