Beispiel #1
0
 @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"));
   }
 }
Beispiel #2
0
  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));
  }
Beispiel #3
0
 @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();
 }
Beispiel #4
0
 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()));
 }
Beispiel #5
0
 @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();
 }
Beispiel #6
0
 @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();
 }
Beispiel #7
0
 @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();
 }