package org.mobicents.tools.heartbeat; import static javax.ws.rs.core.MediaType.APPLICATION_JSON; import java.nio.charset.Charset; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.channel.ChannelFuture; import org.jboss.netty.channel.ChannelFutureListener; import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.handler.codec.http.DefaultHttpResponse; import org.jboss.netty.handler.codec.http.HttpHeaders; import org.jboss.netty.handler.codec.http.HttpResponse; import org.jboss.netty.handler.codec.http.HttpResponseStatus; import org.jboss.netty.handler.codec.http.HttpVersion; import org.mobicents.tools.heartbeat.api.Protocol; import org.mobicents.tools.heartbeat.interfaces.IClientListener; import com.google.gson.JsonObject; public class TestHA implements IClientListener{ @Override public void responseReceived(JsonObject json) { // TODO Auto-generated method stub } @Override public void stopRequestReceived(MessageEvent e,JsonObject json) { writeResponse(e, HttpResponseStatus.OK, Protocol.SHUTDOWN); } private void writeResponse(MessageEvent e, HttpResponseStatus status, String command) { JsonObject jo = new JsonObject(); jo.addProperty(command, Protocol.OK); ChannelBuffer buf = ChannelBuffers.copiedBuffer(jo.toString(), Charset.forName("UTF-8")); HttpResponse response = new DefaultHttpResponse(HttpVersion.HTTP_1_1, status); response.setHeader(HttpHeaders.Names.CONTENT_TYPE, APPLICATION_JSON); response.setHeader(HttpHeaders.Names.CONTENT_LENGTH, buf.readableBytes()); response.setContent(buf); ChannelFuture future = e.getChannel().write(response); future.addListener(ChannelFutureListener.CLOSE); } }