/**
* $Id: ExceptionTest.java 1831 2013-05-16 01:39:51Z shijia.wxr $
*/
package com.alibaba.rocketmq.remoting;
import static org.junit.Assert.assertTrue;
import io.netty.channel.ChannelHandlerContext;
import java.util.concurrent.Executors;
import org.junit.Test;
import com.alibaba.rocketmq.remoting.exception.RemotingConnectException;
import com.alibaba.rocketmq.remoting.exception.RemotingSendRequestException;
import com.alibaba.rocketmq.remoting.exception.RemotingTimeoutException;
import com.alibaba.rocketmq.remoting.netty.NettyClientConfig;
import com.alibaba.rocketmq.remoting.netty.NettyRemotingClient;
import com.alibaba.rocketmq.remoting.netty.NettyRemotingServer;
import com.alibaba.rocketmq.remoting.netty.NettyRequestProcessor;
import com.alibaba.rocketmq.remoting.netty.NettyServerConfig;
import com.alibaba.rocketmq.remoting.protocol.RemotingCommand;
/**
* @author shijia.wxr<vintage.wang@gmail.com>
*/
public class ExceptionTest {
private static RemotingClient createRemotingClient() {
NettyClientConfig config = new NettyClientConfig();
RemotingClient client = new NettyRemotingClient(config);
client.start();
return client;
}
private static RemotingServer createRemotingServer() throws InterruptedException {
NettyServerConfig config = new NettyServerConfig();
RemotingServer client = new NettyRemotingServer(config);
client.registerProcessor(0, new NettyRequestProcessor() {
private int i = 0;
@Override
public RemotingCommand processRequest(ChannelHandlerContext ctx, RemotingCommand request) {
System.out.println("processRequest=" + request + " " + (i++));
request.setRemark("hello, I am respponse " + ctx.channel().remoteAddress());
return request;
}
}, Executors.newCachedThreadPool());
client.start();
return client;
}
@Test
public void test_CONNECT_EXCEPTION() {
RemotingClient client = createRemotingClient();
RemotingCommand request = RemotingCommand.createRequestCommand(0, null);
RemotingCommand response = null;
try {
response = client.invokeSync("127.0.0.1:10911", request, 1000 * 3);
}
catch (RemotingConnectException e) {
e.printStackTrace();
}
catch (RemotingSendRequestException e) {
e.printStackTrace();
}
catch (RemotingTimeoutException e) {
e.printStackTrace();
}
catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("invoke result = " + response);
assertTrue(response != null);
client.shutdown();
System.out.println("-----------------------------------------------------------------");
}
}