@Override public void send(String to, Response response) { ProxyMessage responseMessage = ProxyMessageBuilder.notification(new NotificationCreatePayload(to, gson.toJson(response))); proxyClient.push(responseMessage); } }
@Override public void push(Request request) { if (request.getBody() == null) { throw new NullPointerException("Request body must not be null."); } request.setReplyTo(replyToTopic); client.push(ProxyMessageBuilder.notification(new NotificationCreatePayload(requestTopic, gson.toJson(request)))); // toDo: use request partition key }
@Override public void push(Request request) { if (request.getBody() == null) { throw new NullPointerException("Request body must not be null."); } request.setReplyTo(replyToTopic); client.push(ProxyMessageBuilder.notification(new NotificationCreatePayload(requestTopic, gson.toJson(request)))); // toDo: use request partition key }
@Override public void push(Request request) { if (request.getBody() == null) { throw new NullPointerException("Request body must not be null."); } request.setReplyTo(replyToTopic); client.push(ProxyMessageBuilder.notification( new NotificationCreatePayload(requestTopic, gson.toJson(request), request.getPartitionKey()))); }
@Override public void onEvent(ServerEvent serverEvent) throws Exception { final Request request = serverEvent.get(); if (request.getBody() == null) { throw new NullPointerException("Request body must not be null."); } request.setReplyTo(replyToTopic); proxyClient.push(ProxyMessageBuilder.notification( new NotificationCreatePayload(requestTopic, gson.toJson(request), request.getPartitionKey()))); } }
@Override public void register(Filter filter, Subscriber subscriber) { processRegister(filter, subscriber); String subscribeMessage = gson.toJson(new SubscribeMessage(REGISTER, filter, subscriber)); proxyClient.push(ProxyMessageBuilder.notification( new NotificationCreatePayload(SUBSCRIPTION_TOPIC, subscribeMessage))).thenAccept(message -> { if (message.getStatus() == null || message.getStatus() != 0) { MessagePayload payload = (MessagePayload) message.getPayload(); throw new HiveException("Response message is failed: " + payload.getMessage()); } }); }
@Override public void unregister(Subscriber subscriber) { processUnregister(subscriber); String subscribeMessage = gson.toJson(new SubscribeMessage(UNREGISTER, subscriber)); proxyClient.push(ProxyMessageBuilder.notification( new NotificationCreatePayload(SUBSCRIPTION_TOPIC, subscribeMessage))).thenAccept(message -> { if (message.getStatus() == null || message.getStatus() != 0) { MessagePayload payload = (MessagePayload) message.getPayload(); throw new HiveException("Response message is failed: " + payload.getMessage()); } }); } }
logger.debug("Request callback added for request: {}, correlationId: {}", request.getBody(), request.getCorrelationId()); client.push(ProxyMessageBuilder.notification(new NotificationCreatePayload(requestTopic, gson.toJson(request)))); // toDo: use request partition key
logger.debug("Request callback added for request: {}, correlationId: {}", request.getBody(), request.getCorrelationId()); client.push(ProxyMessageBuilder.notification(new NotificationCreatePayload(requestTopic, gson.toJson(request)))); // toDo: use request partition key
logger.debug("Request callback added for request: {}, correlationId: {}", request.getBody(), request.getCorrelationId()); client.push(ProxyMessageBuilder.notification( new NotificationCreatePayload(requestTopic, gson.toJson(request), request.getPartitionKey())));
@Override public void onEvent(ServerEvent serverEvent) throws Exception { final Request request = serverEvent.get(); final String replyTo = request.getReplyTo(); Response response; switch (request.getType()) { case clientRequest: logger.debug("Client request received {}", request); response = handleClientRequest(request); break; case ping: logger.info("Ping request received from {}", replyTo); response = Response.newBuilder().buildSuccess(); break; default: logger.warn("Unknown type of request received {} from client with topic {}, correlationId = {}", request.getType(), replyTo, request.getCorrelationId()); response = Response.newBuilder() .buildFailed(404); } // set correlationId explicitly to prevent missing it in request response.setCorrelationId(request.getCorrelationId()); ProxyMessage responseMessage = ProxyMessageBuilder.notification(new NotificationCreatePayload(replyTo, gson.toJson(response))); proxyClient.push(responseMessage); }