@Override public String resolveMethod(String requestId) { synchronized (sentRequestMap) { PendingRequestInfo requestInfo = sentRequestMap.get(requestId); if (requestInfo != null) { return requestInfo.requestMessage.getMethod(); } } return null; }
@Override public String resolveMethod(String requestId) { synchronized (sentRequestMap) { PendingRequestInfo requestInfo = sentRequestMap.get(requestId); if (requestInfo != null) { return requestInfo.requestMessage.getMethod(); } } return null; }
@Override protected DebugResponseMessage createResponseMessage(RequestMessage requestMessage) { DebugResponseMessage responseMessage = new DebugResponseMessage(); responseMessage.setResponseId(nextSeqId.incrementAndGet()); responseMessage.setRawId(requestMessage.getRawId()); responseMessage.setMethod(requestMessage.getMethod()); return responseMessage; }
writeId(out, requestMessage.getRawId()); out.name("method"); out.value(requestMessage.getMethod()); out.name("params"); Object params = requestMessage.getParams();
writeId(out, requestMessage.getRawId()); out.name("method"); out.value(requestMessage.getMethod()); out.name("params"); Object params = requestMessage.getParams();
protected void handleRequestIssues(RequestMessage requestMessage, List<MessageIssue> issues) { ResponseError errorObject = new ResponseError(); if (issues.size() == 1) { MessageIssue issue = issues.get(0); errorObject.setMessage(issue.getText()); errorObject.setCode(issue.getIssueCode()); errorObject.setData(issue.getCause()); } else { if (requestMessage.getMethod() != null) errorObject.setMessage("Multiple issues were found in '" + requestMessage.getMethod() + "' request."); else errorObject.setMessage("Multiple issues were found in request."); errorObject.setCode(ResponseErrorCode.InvalidRequest); errorObject.setData(issues); } out.consume(createErrorResponseMessage(requestMessage, errorObject)); }
protected void handleRequestIssues(RequestMessage requestMessage, List<MessageIssue> issues) { ResponseError errorObject = new ResponseError(); if (issues.size() == 1) { MessageIssue issue = issues.get(0); errorObject.setMessage(issue.getText()); errorObject.setCode(issue.getIssueCode()); errorObject.setData(issue.getCause()); } else { if (requestMessage.getMethod() != null) errorObject.setMessage("Multiple issues were found in '" + requestMessage.getMethod() + "' request."); else errorObject.setMessage("Multiple issues were found in request."); errorObject.setCode(ResponseErrorCode.InvalidRequest); errorObject.setData(issues); } out.consume(createErrorResponseMessage(requestMessage, errorObject)); }
try { future = localEndpoint.request(requestMessage.getMethod(), requestMessage.getParams()); } catch (Throwable throwable) { String message = "The request (id: " + messageId + ", method: '" + requestMessage.getMethod() + "') has been cancelled"; ResponseError errorObject = new ResponseError(ResponseErrorCode.RequestCancelled, message, null); responseMessage = createErrorResponseMessage(requestMessage, errorObject);
try { future = localEndpoint.request(requestMessage.getMethod(), requestMessage.getParams()); } catch (Throwable throwable) { String message = "The request (id: " + messageId + ", method: '" + requestMessage.getMethod() + "') has been cancelled"; ResponseError errorObject = new ResponseError(ResponseErrorCode.RequestCancelled, message, null); responseMessage = createErrorResponseMessage(requestMessage, errorObject);
@Test public void testRequest() { TestEndpoint endp = new TestEndpoint(); TestMessageConsumer consumer = new TestMessageConsumer(); RemoteEndpoint endpoint = new DebugRemoteEndpoint(consumer, endp); endpoint.consume(new RequestMessage() {{ setId("1"); setMethod("foo"); setParams("myparam"); }}); Entry<RequestMessage, CompletableFuture<Object>> entry = endp.requests.entrySet().iterator().next(); entry.getValue().complete("success"); assertEquals("foo", entry.getKey().getMethod()); assertEquals("myparam", entry.getKey().getParams()); assertEquals("success", ((ResponseMessage)consumer.messages.get(0)).getResult()); }
@Test public void testRequest1() { TestEndpoint endp = new TestEndpoint(); TestMessageConsumer consumer = new TestMessageConsumer(); RemoteEndpoint endpoint = new RemoteEndpoint(consumer, endp); endpoint.consume(init(new RequestMessage(), it -> { it.setId("1"); it.setMethod("foo"); it.setParams("myparam"); })); Entry<RequestMessage, CompletableFuture<Object>> entry = endp.requests.entrySet().iterator().next(); entry.getValue().complete("success"); assertEquals("foo", entry.getKey().getMethod()); assertEquals("myparam", entry.getKey().getParams()); ResponseMessage responseMessage = (ResponseMessage) consumer.messages.get(0); assertEquals("success", responseMessage.getResult()); assertEquals(Either.forLeft("1"), responseMessage.getRawId()); }
@Test public void testRequest2() { TestEndpoint endp = new TestEndpoint(); TestMessageConsumer consumer = new TestMessageConsumer(); RemoteEndpoint endpoint = new RemoteEndpoint(consumer, endp); endpoint.consume(init(new RequestMessage(), it -> { it.setId(1); it.setMethod("foo"); it.setParams("myparam"); })); Entry<RequestMessage, CompletableFuture<Object>> entry = endp.requests.entrySet().iterator().next(); entry.getValue().complete("success"); assertEquals("foo", entry.getKey().getMethod()); assertEquals("myparam", entry.getKey().getParams()); ResponseMessage responseMessage = (ResponseMessage) consumer.messages.get(0); assertEquals("success", responseMessage.getResult()); assertEquals(Either.forRight(1), responseMessage.getRawId()); }