package chapter2.recipe10;
import java.io.IOException;
import java.net.InetSocketAddress;
import netty.cookbook.common.LogUtil;
import org.apache.avro.ipc.NettyTransceiver;
import org.apache.avro.ipc.specific.SpecificRequestor;
import org.apache.avro.util.Utf8;
import avro.Mail;
import avro.Message;
/**
* Start ClientAvroRPC, and send a message.
*/
public class ClientAvroRPC {
public static void main(String[] args) throws IOException {
if(args.length < 3){
args = new String[] {"someone@example.com","myself@example.com","Hello !"};
}
NettyTransceiver client = new NettyTransceiver(new InetSocketAddress(10000));
Mail proxy = (Mail) SpecificRequestor.getClient(Mail.class, client);
LogUtil.println("ClientAvroRPC built OK, got proxy, ready to send data ...");
Message message = new Message();
message.setTo(new Utf8(args[0]));
message.setFrom(new Utf8(args[1]));
message.setBody(new Utf8(args[2]));
LogUtil.println("Calling proxy.send with message: " + message.toString());
LogUtil.println("Result from server: " + proxy.send(message));
client.close();
}
}