@Override protected void doStop() throws Exception { super.doStop(); if (server != null) { server.close(); } }
@Override public Object respond(Protocol.Message message, Object request) throws Exception { Object response; int numParams = message.getRequest().getFields().size(); Object[] params = new Object[numParams]; Class<?>[] paramTypes = new Class[numParams]; int i = 0; for (Schema.Field param : message.getRequest().getFields()) { params[i] = ((GenericRecord) request).get(param.name()); paramTypes[i] = SpecificData.get().getClass(param.schema()); i++; } Exchange exchange = consumer.getEndpoint().createExchange(message, params); try { consumer.getProcessor().process(exchange); } catch (Throwable e) { consumer.getExceptionHandler().handleException(e); } if (ExchangeHelper.isOutCapable(exchange)) { response = exchange.getOut().getBody(); } else { response = null; } boolean failed = exchange.isFailed(); if (failed) { if (exchange.getException() != null) { response = exchange.getException(); } else { // failed and no exception, must be a fault response = exchange.getOut().getBody(); } } return response; }
public AvroResponder(AvroConsumer consumer) { super(consumer.getEndpoint().getProtocol(), null); this.consumer = consumer; }