@Override public void asyncRecognize( AsyncRecognizeRequest request, StreamObserver<Operation> responseObserver) { Object response = responses.remove(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext((Operation) response); responseObserver.onCompleted(); } else if (response instanceof Exception) { responseObserver.onError((Exception) response); } else { responseObserver.onError(new IllegalArgumentException("Unrecognized response type")); } }
public void cancelAfterFirstResponse() throws Exception { final StreamingOutputCallRequest request = new StreamingOutputCallRequest(); request.responseParameters = new Messages.ResponseParameters[1]; request.responseParameters[0] = new ResponseParameters(); request.responseParameters[0].size = 31415; request.payload = new Payload(); request.payload.body = new byte[27182]; final StreamingOutputCallResponse goldenResponse = new StreamingOutputCallResponse(); goldenResponse.payload = new Payload(); goldenResponse.payload.type = Messages.COMPRESSABLE; goldenResponse.payload.body = new byte[31415]; ResponseObserver responseObserver = new ResponseObserver(); StreamObserver<StreamingOutputCallRequest> requestObserver = asyncStub.fullDuplexCall(responseObserver); requestObserver.onNext(request); Object response = responseObserver.responses.poll(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); if (!(response instanceof Messages.StreamingOutputCallResponse)) { fail("Unexpected: " + response); } assertMessageEquals(goldenResponse, (Messages.StreamingOutputCallResponse) response); requestObserver.onError(new RuntimeException()); response = responseObserver.responses.poll(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); if (!(response instanceof Throwable)) { fail("Unexpected: " + response); } assertCodeEquals(io.grpc.Status.CANCELLED, io.grpc.Status.fromThrowable((Throwable) response)); }
@Override public void log(LogMessage request, StreamObserver<EmptyMessage> responseObserver) { try { // FIXME put these in Cassandra and render in central UI LogEvent logEvent = request.getLogEvent(); Proto.Throwable t = logEvent.getThrowable(); if (t == null) { logger.warn( "{} -- {} -- {} -- {}", request.getServerId(), logEvent.getLevel(), logEvent.getLoggerName(), logEvent.getFormattedMessage()); } else { logger.warn( "{} -- {} -- {} -- {}\n{}", request.getServerId(), logEvent.getLevel(), logEvent.getLoggerName(), logEvent.getFormattedMessage(), t); } } catch (Throwable t) { responseObserver.onError(t); return; } responseObserver.onNext(EmptyMessage.getDefaultInstance()); responseObserver.onCompleted(); }
public void cancelAfterBegin() throws Exception { StreamRecorder<StreamingInputCallResponse> responseObserver = StreamRecorder.create(); StreamObserver<StreamingInputCallRequest> requestObserver = asyncStub.streamingInputCall(responseObserver); requestObserver.onError(new RuntimeException()); assertTrue(responseObserver.awaitCompletion(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)); assertEquals(Arrays.<StreamingInputCallResponse>asList(), responseObserver.getValues()); assertCodeEquals( io.grpc.Status.CANCELLED, io.grpc.Status.fromThrowable(responseObserver.getError())); }
@Override public void collectTrace(TraceMessage request, StreamObserver<EmptyMessage> responseObserver) { try { traceRepository.collect(request.getServerId(), request.getTrace()); } catch (Throwable t) { logger.error(t.getMessage(), t); responseObserver.onError(t); return; } responseObserver.onNext(EmptyMessage.getDefaultInstance()); responseObserver.onCompleted(); }
@Override public void collectInit(InitMessage request, StreamObserver<EmptyMessage> responseObserver) { // FIXME store request.getConfig() try { serverRepository.storeProcessInfo(request.getServerId(), request.getProcessInfo()); } catch (Throwable t) { logger.error(t.getMessage(), t); responseObserver.onError(t); return; } responseObserver.onNext(EmptyMessage.getDefaultInstance()); responseObserver.onCompleted(); }
@Override public void collectAggregates( AggregateMessage request, StreamObserver<EmptyMessage> responseObserver) { try { aggregateRepository.store( request.getServerId(), request.getCaptureTime(), request.getAggregatesByTypeList()); } catch (Throwable t) { logger.error(t.getMessage(), t); responseObserver.onError(t); return; } responseObserver.onNext(EmptyMessage.getDefaultInstance()); responseObserver.onCompleted(); }