use of org.jboss.netty.channel.MessageEvent in project NabAlive by jcheype.
the class IqHandler method onMessage.
public void onMessage(ChannelHandlerContext ctx, MessageEvent e, Status status, String message, Document document) {
String id = document.getDocumentElement().getAttribute("id");
String from = document.getDocumentElement().getAttribute("from");
Jid jid = new Jid(from);
String to = document.getDocumentElement().getAttribute("to");
final Matcher matcher = statusChangePattern.matcher(message);
if (matcher.find()) {
String resource = matcher.group(1);
logger.info("change status: " + resource);
String reply = "<iq id='" + id + "' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>" + "<jid>" + jid.getUser() + "@" + jid.getServer() + "/" + resource + "</jid></bind></iq>";
write(e.getChannel(), reply);
jid.setResource(resource);
status.setJid(jid);
status.onEvent(new Event(message, Event.Type.BIND_RESOURCE));
} else if (message.contains("<session xmlns='urn:ietf:params:xml:ns:xmpp-session'/>")) {
String reply = "<iq id='" + id + "' type='result' from='" + to + "'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>";
write(e.getChannel(), reply);
} else if (message.contains("<query xmlns=\"violet:iq:sources\"><packet xmlns=\"violet:packet\" format=\"1.0\"/></query>")) {
String reply = "<iq from='net.violet.platform@xmpp.nabaztag.com/sources'" + "to='" + from + "' id='" + id + "' type='result'>" + "<query xmlns='violet:iq:sources'>" + "<packet xmlns='violet:packet' format='1.0' ttl='604800'>fwQAAAx////+BAAFAA7/CAALAAABAP8=</packet>" + "</query>" + "</iq>";
write(e.getChannel(), reply);
} else if (message.contains("<unbind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>")) {
String reply = "<iq id='" + id + "' type='result'/>";
write(e.getChannel(), reply);
status.onEvent(new Event(message, Event.Type.UNBIND_RESOURCE));
}
}
use of org.jboss.netty.channel.MessageEvent in project NabAlive by jcheype.
the class MessageHandler method onMessage.
@Override
protected void onMessage(ChannelHandlerContext ctx, MessageEvent e, Status status, String message, Document document) {
String from = document.getDocumentElement().getAttribute("from");
if (message.contains("<button xmlns=\"violet:nabaztag:button\">"))
status.onEvent(new Event(message, Event.Type.BUTTON));
else if (message.contains("<ears xmlns=\"violet:nabaztag:ears\">"))
status.onEvent(new Event(message, Event.Type.EARS));
else
status.onEvent(new Event(message, Event.Type.UNKNOWN_MESSAGE));
}
use of org.jboss.netty.channel.MessageEvent in project NabAlive by jcheype.
the class PresenceHandler method onMessage.
public void onMessage(ChannelHandlerContext ctx, MessageEvent e, Status status, String message, Document document) {
String id = document.getDocumentElement().getAttribute("id");
String from = document.getDocumentElement().getAttribute("from");
String reply = "<presence from='" + from + "' to='" + from + "' id='" + id + "'/>";
write(e.getChannel(), reply);
Matcher matcher = pattern.matcher(from);
if (matcher.find()) {
String presence = matcher.group(1);
status.setPresence(presence);
}
status.onEvent(new Event(message, Event.Type.PRESENCE));
}
use of org.jboss.netty.channel.MessageEvent in project adbcj by mheath.
the class Handler method handleDownstream.
public void handleDownstream(ChannelHandlerContext context, ChannelEvent event) throws Exception {
if (!(event instanceof MessageEvent)) {
context.sendDownstream(event);
return;
}
MessageEvent e = (MessageEvent) event;
if (!(e.getMessage() instanceof ClientRequest)) {
context.sendDownstream(event);
return;
}
ChannelBuffer buffer = ChannelBuffers.buffer(1024);
ChannelBufferOutputStream out = new ChannelBufferOutputStream(buffer);
encoder.encode((ClientRequest) e.getMessage(), out);
Channels.write(context, e.getFuture(), buffer);
}
use of org.jboss.netty.channel.MessageEvent in project hadoop by apache.
the class TestShuffleHandler method testSendMapCount.
@Test(timeout = 4000)
public void testSendMapCount() throws Exception {
final List<ShuffleHandler.ReduceMapFileCount> listenerList = new ArrayList<ShuffleHandler.ReduceMapFileCount>();
final ChannelHandlerContext mockCtx = Mockito.mock(ChannelHandlerContext.class);
final MessageEvent mockEvt = Mockito.mock(MessageEvent.class);
final Channel mockCh = Mockito.mock(AbstractChannel.class);
// Mock HttpRequest and ChannelFuture
final HttpRequest mockHttpRequest = createMockHttpRequest();
final ChannelFuture mockFuture = createMockChannelFuture(mockCh, listenerList);
// Mock Netty Channel Context and Channel behavior
Mockito.doReturn(mockCh).when(mockCtx).getChannel();
Mockito.when(mockCtx.getChannel()).thenReturn(mockCh);
Mockito.doReturn(mockFuture).when(mockCh).write(Mockito.any(Object.class));
Mockito.when(mockCh.write(Object.class)).thenReturn(mockFuture);
//Mock MessageEvent behavior
Mockito.doReturn(mockCh).when(mockEvt).getChannel();
Mockito.when(mockEvt.getChannel()).thenReturn(mockCh);
Mockito.doReturn(mockHttpRequest).when(mockEvt).getMessage();
final ShuffleHandler sh = new MockShuffleHandler();
Configuration conf = new Configuration();
sh.init(conf);
sh.start();
int maxOpenFiles = conf.getInt(ShuffleHandler.SHUFFLE_MAX_SESSION_OPEN_FILES, ShuffleHandler.DEFAULT_SHUFFLE_MAX_SESSION_OPEN_FILES);
sh.getShuffle(conf).messageReceived(mockCtx, mockEvt);
assertTrue("Number of Open files should not exceed the configured " + "value!-Not Expected", listenerList.size() <= maxOpenFiles);
while (!listenerList.isEmpty()) {
listenerList.remove(0).operationComplete(mockFuture);
assertTrue("Number of Open files should not exceed the configured " + "value!-Not Expected", listenerList.size() <= maxOpenFiles);
}
sh.close();
}
Aggregations