I am trying to build a prototype using Apache Camel-Mina2 component. We have
our own protocol implementation on TCP and I need to intercept Client -
Server messages using a proxy Component. Existing - TCP Client ----> TCP
Server
New - TCP Client ----> Proxy Server -----> TCP Server
One of the issue in our protocol is that each Request is not guaranteed a
reply from the server, so some requests will be sent on the channel with an
optional response. However some requests will also get back a response.
Protocol Semantics : Hi ----> <---- Hello How Are You ------> Are You okay
-----> <-----Yes
As you can see messages with ----> are from client to server and <---- are
responses from Server ( on a single stream /line).
Now given the above problem, Camel-Mina2 works on a InOut message exchange
pattern. The ExchangePattern Enumeration also has an InOptionalOut use case.
Any suggestions how I can configure my endpoints? I would like to know if
it is possible to make use of an InOptionalOut exchange pattern. So
essentially not worry about the response for certain types of messages. Can
I handle this programmatically - Read the Message Body and decide if a
Request needs a Response or just needs to be written out ?
Sample implementation is as below:
SimpleRegistry reg = new SimpleRegistry();
reg.put("ProtocolCodec", new ProtocolCodec());
CamelContext context = new DefaultCamelContext(reg);
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
// TODO Auto-generated method stub
from("mina2:tcp://localhost:9888?sync=true&codec=#ProtocolCodec&disconnectOnNoReply=false").
to("mina2:tcp://localhost:9889?sync=true&codec=#ProtocolCodec&disconnectOnNoReply=false&clientMode=true");
}
});
context.start();
--
View this message in context:
http://camel.465427.n5.nabble.com/Apache-Camel-Mina2-ExchangePattern-tp5765184.html
Sent from the Camel - Users mailing list archive at Nabble.com.