void messageReceived(T request, TransportChannel channel) throws Exception; }
private String handleRequest(Channel channel, StreamInput buffer, long requestId, Version version) throws IOException { final String action = buffer.readString(); final NettyTransportChannel transportChannel = new NettyTransportChannel(transport, action, channel, requestId, version); try { final TransportRequestHandler handler = transportServiceAdapter.handler(action, version); if (handler == null) { throw new ActionNotFoundTransportException(action); } final TransportRequest request = handler.newInstance(); request.readFrom(buffer); if (handler.executor().equals(ThreadPool.Names.SAME)) { //noinspection unchecked handler.messageReceived(request, transportChannel); } else { threadPool.executor(handler.executor()).execute(new RequestHandler(handler, request, transportChannel, action)); } } catch (Throwable e) { try { transportChannel.sendResponse(e); } catch (IOException e1) { logger.warn("Failed to send error message back to client for action [" + action + "]", e); logger.warn("Actual Exception", e1); } } return action; }
public void processMessageReceived(Request request, TransportChannel channel) throws Exception { final Task task = taskManager.register(channel.getChannelType(), action, request); if (task == null) { handler.messageReceived(request, channel); } else { boolean success = false; try { handler.messageReceived(request, new TaskTransportChannel(taskManager, task, channel), task); success = true; } finally { if (success == false) { taskManager.unregister(task); } } } }
@Override public void messageReceived(T request, TransportChannel channel, Task task) throws Exception { assertVersionSerializable(request); actualHandler.messageReceived(request, channel, task); }
@Override public void messageReceived(T request, TransportChannel channel) throws Exception { assertVersionSerializable(request); actualHandler.messageReceived(request, channel); } };
protected void messageReceivedDecorate(final T request, final TransportRequestHandler<T> actualHandler, final TransportChannel transportChannel, Task task) throws Exception { actualHandler.messageReceived(request, transportChannel, task); } }
void messageReceived(T request, TransportChannel channel) throws Exception; }
void messageReceived(T request, TransportChannel channel) throws Exception; }
void messageReceived(T request, TransportChannel channel) throws Exception; }
public abstract void messageReceived(T request, TransportChannel channel) throws Exception; }
@Override public void messageReceived(T request, TransportChannel channel, Task task) throws Exception { if (allow(request)) { delegate.messageReceived(request, channel, task); } else { throw new IllegalStateException("Authentication error"); } }
@Override public void messageReceived(T request, TransportChannel channel) throws Exception { if (allow(request)) { delegate.messageReceived(request, channel); } else { throw new IllegalStateException("Authentication error"); } }
public void processMessageReceived(Request request, TransportChannel channel) throws Exception { final Task task = taskManager.register(channel.getChannelType(), action, request); if (task == null) { handler.messageReceived(request, channel); } else { boolean success = false; try { handler.messageReceived(request, new TransportChannelWrapper(taskManager, task, channel), task); success = true; } finally { if (success == false) { taskManager.unregister(task); } } } }
public void processMessageReceived(Request request, TransportChannel channel) throws Exception { final Task task = taskManager.register(channel.getChannelType(), action, request); if (task == null) { handler.messageReceived(request, channel); } else { boolean success = false; try { handler.messageReceived(request, new TransportChannelWrapper(taskManager, task, channel), task); success = true; } finally { if (success == false) { taskManager.unregister(task); } } } }
public void processMessageReceived(Request request, TransportChannel channel) throws Exception { final Task task = taskManager.register(channel.getChannelType(), action, request); if (task == null) { handler.messageReceived(request, channel); } else { boolean success = false; try { handler.messageReceived(request, new TaskTransportChannel(taskManager, task, channel), task); success = true; } finally { if (success == false) { taskManager.unregister(task); } } } }
public void processMessageReceived(Request request, TransportChannel channel) throws Exception { final Task task = taskManager.register(channel.getChannelType(), action, request); if (task == null) { handler.messageReceived(request, channel); } else { boolean success = false; try { handler.messageReceived(request, new TaskTransportChannel(taskManager, task, channel), task); success = true; } finally { if (success == false) { taskManager.unregister(task); } } } }
@SuppressWarnings({"unchecked"}) @Override public void run() { try { handler.messageReceived(request, transportChannel); } catch (Throwable e) { if (transport.lifecycleState() == Lifecycle.State.STARTED) { // we can only send a response transport is started.... try { transportChannel.sendResponse(e); } catch (IOException e1) { logger.warn("Failed to send error message back to client for action [" + action + "]", e1); logger.warn("Actual Exception", e); } } } } }