java类com.google.protobuf.Empty的实例源码

CancellationPropagationIntegrationTest.java 文件源码 项目:reactive-grpc 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void clientCanCancelServerStreamExplicitly() throws InterruptedException {
    RxNumbersGrpc.RxNumbersStub stub = RxNumbersGrpc.newRxStub(channel);
    TestSubscriber<NumberProto.Number> subscription = stub
            .responsePressure(Single.just(Empty.getDefaultInstance()))
            .doOnNext(number -> System.out.println(number.getNumber(0)))
            .doOnError(throwable -> System.out.println(throwable.getMessage()))
            .doOnComplete(() -> System.out.println("Completed"))
            .doOnCancel(() -> System.out.println("Client canceled"))
            .test();

    Thread.sleep(250);
    subscription.dispose();
    Thread.sleep(250);

    subscription.awaitTerminalEvent(3, TimeUnit.SECONDS);
    // Cancellation may or may not deliver the last generated message due to delays in the gRPC processing thread
    assertThat(Math.abs(subscription.valueCount() - svc.getLastNumberProduced())).isLessThanOrEqualTo(3);
    assertThat(svc.wasCanceled()).isTrue();
}
CancellationPropagationIntegrationTest.java 文件源码 项目:reactive-grpc 阅读 30 收藏 0 点赞 0 评论 0
@Test
public void clientCanCancelServerStreamImplicitly() throws InterruptedException {
    RxNumbersGrpc.RxNumbersStub stub = RxNumbersGrpc.newRxStub(channel);
    TestSubscriber<NumberProto.Number> subscription = stub
            .responsePressure(Single.just(Empty.getDefaultInstance()))
            .doOnNext(number -> System.out.println(number.getNumber(0)))
            .doOnError(throwable -> System.out.println(throwable.getMessage()))
            .doOnComplete(() -> System.out.println("Completed"))
            .doOnCancel(() -> System.out.println("Client canceled"))
            .take(10)
            .test();

    // Consume some work
    Thread.sleep(TimeUnit.SECONDS.toMillis(1));
    subscription.dispose();

    subscription.awaitTerminalEvent(3, TimeUnit.SECONDS);
    subscription.assertValueCount(10);
    subscription.assertTerminated();
    assertThat(svc.wasCanceled()).isTrue();
}
BackpressureIntegrationTest.java 文件源码 项目:reactive-grpc 阅读 28 收藏 0 点赞 0 评论 0
@Test
public void serverToClientBackpressure() throws InterruptedException {
    RxNumbersGrpc.RxNumbersStub stub = RxNumbersGrpc.newRxStub(channel);

    Single<Empty> rxRequest = Single.just(Empty.getDefaultInstance());

    TestSubscriber<NumberProto.Number> rxResponse = stub.responsePressure(rxRequest)
            .doOnNext(n -> System.out.println(n.getNumber(0) + "  <--"))
            .doOnNext(n -> waitIfValuesAreEqual(n.getNumber(0), 3))
            .test();

    rxResponse.awaitTerminalEvent(5, TimeUnit.SECONDS);
    rxResponse.assertComplete()
            .assertValueCount(NUMBER_OF_STREAM_ELEMENTS);

    assertThat(numberOfWaits.get()).isEqualTo(1);
}
CancellationPropagationIntegrationTest.java 文件源码 项目:reactive-grpc 阅读 26 收藏 0 点赞 0 评论 0
@Test
public void clientCanCancelServerStreamExplicitly() throws InterruptedException {
    AtomicInteger lastNumberConsumed = new AtomicInteger(Integer.MAX_VALUE);
    ReactorNumbersGrpc.ReactorNumbersStub stub = ReactorNumbersGrpc.newReactorStub(channel);
    Flux<NumberProto.Number> test = stub
            .responsePressure(Mono.just(Empty.getDefaultInstance()))
            .doOnNext(number -> {lastNumberConsumed.set(number.getNumber(0)); System.out.println("C: " + number.getNumber(0));})
            .doOnError(throwable -> System.out.println(throwable.getMessage()))
            .doOnComplete(() -> System.out.println("Completed"))
            .doOnCancel(() -> System.out.println("Client canceled"));

    Disposable subscription = test.publish().connect();

    Thread.sleep(1000);
    subscription.dispose();
    Thread.sleep(1000);

    // Cancellation may or may not deliver the last generated message due to delays in the gRPC processing thread
    assertThat(Math.abs(lastNumberConsumed.get() - svc.getLastNumberProduced())).isLessThanOrEqualTo(3);
    assertThat(svc.wasCanceled()).isTrue();
}
CancellationPropagationIntegrationTest.java 文件源码 项目:reactive-grpc 阅读 28 收藏 0 点赞 0 评论 0
@Test
public void clientCanCancelServerStreamImplicitly() throws InterruptedException {
    ReactorNumbersGrpc.ReactorNumbersStub stub = ReactorNumbersGrpc.newReactorStub(channel);
    Flux<NumberProto.Number> test = stub
            .responsePressure(Mono.just(Empty.getDefaultInstance()))
            .doOnNext(number -> System.out.println(number.getNumber(0)))
            .doOnError(throwable -> System.out.println(throwable.getMessage()))
            .doOnComplete(() -> System.out.println("Completed"))
            .doOnCancel(() -> System.out.println("Client canceled"))
            .take(10);

    Disposable subscription = test.publish().connect();

    Thread.sleep(1000);

    assertThat(svc.wasCanceled()).isTrue();
}
BackpressureIntegrationTest.java 文件源码 项目:reactive-grpc 阅读 32 收藏 0 点赞 0 评论 0
@Test
public void serverToClientBackpressure() throws InterruptedException {
    ReactorNumbersGrpc.ReactorNumbersStub stub = ReactorNumbersGrpc.newReactorStub(channel);

    Mono<Empty> reactorRequest = Mono.just(Empty.getDefaultInstance());

    Flux<NumberProto.Number> reactorResponse = stub.responsePressure(reactorRequest)
            .doOnNext(n -> System.out.println(n.getNumber(0) + "  <--"))
            .doOnNext(n -> waitIfValuesAreEqual(n.getNumber(0), 3));

    StepVerifier.create(reactorResponse)
            .expectNextCount(NUMBER_OF_STREAM_ELEMENTS)
            .expectComplete()
            .verify(Duration.ofSeconds(5));

    assertThat(numberOfWaits.get()).isEqualTo(1);
}
StackdriverReporter.java 文件源码 项目:curiostack 阅读 31 收藏 0 点赞 0 评论 0
@Override
public void flush() {
  List<Span> spans = new ArrayList<>();
  queue.drain(spans::add);
  if (spans.isEmpty()) {
    return;
  }
  PatchTracesRequest request =
      PatchTracesRequest.newBuilder()
          .setProjectId(projectId)
          .setTraces(Traces.newBuilder().addAllTraces(translator.translateSpans(spans)))
          .build();
  ApiFutures.addCallback(
      traceServiceClient.patchTracesCallable().futureCall(request),
      new ApiFutureCallback<Empty>() {
        @Override
        public void onFailure(Throwable t) {
          logger.warn("Error reporting traces.", t);
        }

        @Override
        public void onSuccess(Empty result) {
          logger.info("Successfully reported traces.");
        }
      });
}
TimeClient.java 文件源码 项目:grpc-java-contrib 阅读 35 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws Exception {
    String host = args[0];
    int port = Integer.parseInt(args[1]);

    String abstractName = "mesh://timeService";

    // Open a channel to the server
    Channel channel = ManagedChannelBuilder
            .forTarget(abstractName)
            .nameResolverFactory(StaticResolver.factory(new InetSocketAddress(host, port)))
            .usePlaintext(true)
            .build();

    // Create a CompletableFuture-based stub
    TimeServiceGrpc8.TimeServiceCompletableFutureStub stub = TimeServiceGrpc8.newCompletableFutureStub(channel);

    // Call the service
    CompletableFuture<TimeReply> completableFuture = stub.getTime(Empty.getDefaultInstance());
    TimeReply timeReply = completableFuture.get();

    // Convert to JDK8 types
    Instant now = MoreTimestamps.toInstantUtc(timeReply.getTime());
    System.out.println("The time is " + now);
}
_UserGrpcServiceIntTest.java 文件源码 项目:generator-jhipster-grpc 阅读 34 收藏 0 点赞 0 评论 0
@Test
public void getAllAuthoritiesRejected() throws Exception {
    Authentication authentication = new UsernamePasswordAuthenticationToken(
        DEFAULT_EMAIL,
        DEFAULT_PASSWORD,
        Collections.singletonList(new SimpleGrantedAuthority(AuthoritiesConstants.USER))
    );
    SecurityContextHolder.getContext().setAuthentication(authentication);

    try {
        List<String> roles = new ArrayList<>();
        stub.getAllAuthorities(Empty.getDefaultInstance()).forEachRemaining(role -> roles.add(role.getValue()));
        failBecauseExceptionWasNotThrown(StatusRuntimeException.class);
    } catch (StatusRuntimeException e){
        assertThat(e.getStatus().getCode()).isEqualTo(Status.Code.PERMISSION_DENIED);
    }
}
_MetricService.java 文件源码 项目:generator-jhipster-grpc 阅读 34 收藏 0 点赞 0 评论 0
@Override
public Flux<Metric> getMetrics(Mono<Empty> request) {
    return request
        .flatMapIterable(empty -> publicMetrics)
        .flatMapIterable(PublicMetrics::metrics)
        .map(metric -> {
            Metric.Builder builder = Metric.newBuilder()
                .setName(metric.getName());
            if (metric.getTimestamp() != null) {
                builder.setTimestamp(ProtobufMappers.dateToTimestamp(metric.getTimestamp()));
            }
            if (metric.getValue() instanceof Long || metric.getValue() instanceof Integer) {
                builder.setLongValue(metric.getValue().longValue());
            } else if (metric.getValue() instanceof Float || metric.getValue() instanceof Double) {
                builder.setDoubleValue((metric.getValue()).doubleValue());
            } else {
                builder.setStringValue(metric.getValue().toString());
            }
            return builder.build();
        });
}
CloudPubSubSourceTaskTest.java 文件源码 项目:pubsub 阅读 30 收藏 0 点赞 0 评论 0
/**
 * Tests that when ackMessages() succeeds and the subsequent call to poll() has no messages, that
 * the subscriber does not invoke ackMessages because there should be no acks.
 */
@Test
public void testPollInRegularCase() throws Exception {
  task.start(props);
  ReceivedMessage rm1 = createReceivedMessage(ACK_ID1, CPS_MESSAGE, new HashMap<String, String>());
  PullResponse stubbedPullResponse = PullResponse.newBuilder().addReceivedMessages(rm1).build();
  when(subscriber.pull(any(PullRequest.class)).get()).thenReturn(stubbedPullResponse);
  List<SourceRecord> result = task.poll();
  assertEquals(1, result.size());
  stubbedPullResponse = PullResponse.newBuilder().build();
  ListenableFuture<Empty> goodFuture = Futures.immediateFuture(Empty.getDefaultInstance());
  when(subscriber.ackMessages(any(AcknowledgeRequest.class))).thenReturn(goodFuture);
  when(subscriber.pull(any(PullRequest.class)).get()).thenReturn(stubbedPullResponse);
  result = task.poll();
  assertEquals(0, result.size());
  result = task.poll();
  assertEquals(0, result.size());
  verify(subscriber, times(1)).ackMessages(any(AcknowledgeRequest.class));
}
Rescheduler.java 文件源码 项目:core-java 阅读 22 收藏 0 点赞 0 评论 0
private void rescheduleForTenant(final TenantId tenantId) {
    final TenantAwareFunction0<Iterator<Command>> func =
            new TenantAwareFunction0<Iterator<Command>>(tenantId) {
                @Override
                public Iterator<Command> apply() {
                    return commandStore().iterator(SCHEDULED);
                }
            };

    final Iterator<Command> commands = func.execute(Empty.getDefaultInstance());

    final TenantAwareOperation op = new TenantAwareOperation(tenantId) {
        @Override
        public void run() {
            while (commands.hasNext()) {
                final Command command = commands.next();
                reschedule(command);
            }
        }
    };
    op.execute();
}
CallCompletionStatusInterceptorTest.java 文件源码 项目:cloud-bigtable-client 阅读 32 收藏 0 点赞 0 评论 0
@Test
public void callCompletionStatusesAreRecorded() throws InterruptedException {
  CallCompletionStatusInterceptor interceptor = new CallCompletionStatusInterceptor();

  when(channelStub.newCall(BigtableServiceGrpc.CONFIG.mutateRow)).thenReturn(callStub);

  CompletionStatusGatheringCall<MutateRowRequest, Empty> wrappedCall =
      interceptor.interceptCall(BigtableServiceGrpc.CONFIG.mutateRow, channelStub);

  Listener<Empty> statusGatheringListener =
      wrappedCall.createGatheringListener(responseListenerStub);

  statusGatheringListener.onClose(Status.INTERNAL, new Metadata.Trailers());

  CallCompletionStatusInterceptor.CallCompletionStatus expectedStatusEntry =
      new CallCompletionStatusInterceptor.CallCompletionStatus(
          BigtableServiceGrpc.CONFIG.mutateRow, Status.INTERNAL);

  Assert.assertEquals(1, interceptor.getCallCompletionStatuses().count(expectedStatusEntry));
}
RetryListenerTest.java 文件源码 项目:cloud-bigtable-client 阅读 25 收藏 0 点赞 0 评论 0
@Test
public void successfulCallsAreNotRetried() {
  RetryListener<MutateRowRequest, Empty> listener =
      new RetryListener<>(
          mockRetryingCall,
          request,
          new Headers.Headers(),
          true, // always retriable for testing
          mockResponseListener);

  listener.onHeaders(new Headers.Headers());
  listener.onPayload(response);
  listener.onClose(Status.OK, new Trailers.Trailers());

  // Validate that the listener did not attempt to start a new call on the channel:
  verifyNoMoreInteractions(mockRetryingCall);

  // Verify that the mockResponseListener was informed of the payload and closed:
  verify(mockResponseListener, times(1)).onPayload(eq(response));
  verify(mockResponseListener, times(1)).onClose(eq(Status.OK), any(Trailers.Trailers.class));
}
RetryListenerTest.java 文件源码 项目:cloud-bigtable-client 阅读 31 收藏 0 点赞 0 评论 0
@Test
public void failuresAfterHeadersAreReceivedIsNotRetried() {
  Headers requestHeaders = new Headers.Headers();
  RetryListener<MutateRowRequest, Empty> listener =
      new RetryListener<>(
          mockRetryingCall,
          request,
          requestHeaders,
          true, // always retriable for testing
          mockResponseListener);

  Headers responseHeaders = new Headers.Headers();
  listener.onHeaders(responseHeaders);
  listener.onPayload(response);
  listener.onClose(Status.INTERNAL, new Trailers.Trailers());

  // Validate that the listener did not attempt to start a new call on the channel:
  verifyNoMoreInteractions(mockRetryingCall);

  // Verify that the mockResponseListener was informed of the payload and closed:
  verify(mockResponseListener, times(1)).onHeaders(eq(responseHeaders));
  verify(mockResponseListener, times(1)).onPayload(eq(response));
  verify(mockResponseListener, times(1)).onClose(
      eq(Status.INTERNAL), any(Trailers.Trailers.class));
}
FunbaseGrpcService.java 文件源码 项目:funbase 阅读 32 收藏 0 点赞 0 评论 0
@Override
public void deletes(Delete del, StreamObserver<Empty> response) {
  TableName tn = TableName.valueOf(del.getTable());
  try (Table table = hbase.getTable(tn)) {
    org.apache.hadoop.hbase.client.Delete delete =
        new org.apache.hadoop.hbase.client.Delete(del.getId().toByteArray());
    for (ColumnQualifier col : del.getColumnList()) {
      delete.addColumn(col.getCf().toByteArray(), col.getQualifier().toByteArray());
    }
    LOG.info("deleting for id: {}.", del.getId().toStringUtf8());
    table.delete(delete);
    response.onNext(Empty.getDefaultInstance());
    response.onCompleted();
  } catch (IOException ex) {
    LOG.error("error deleting from hbase.", ex);
    response.onError(ex);
  }
}
LessSimpleServiceImpl.java 文件源码 项目:grpc-base-gradle 阅读 36 收藏 0 点赞 0 评论 0
@Override
public void blockForMillis(BlockForMillisRequest request,
                           StreamObserver<Empty> responseObserver) {
    logger.info("blocking for millis [" + request.getMillis() + "] request received at "
            + SimpleServiceImpl.DATE_FORMAT.format(new Date(System.currentTimeMillis())));
    try {
        Thread.sleep(request.getMillis());
        responseObserver.onNext(Empty.getDefaultInstance());
    } catch (InterruptedException e) {
        responseObserver.onError(e);
    }
    responseObserver.onCompleted();
}
SimpleServiceImpl.java 文件源码 项目:grpc-base-gradle 阅读 25 收藏 0 点赞 0 评论 0
@Override
public void noop(Empty request, StreamObserver<Empty> responseObserver) {
    logger.info("no-op request received at " + DATE_FORMAT.format(
            new Date(System.currentTimeMillis())));
    responseObserver.onNext(Empty.getDefaultInstance());
    responseObserver.onCompleted();
}
CancellationPropagationIntegrationTest.java 文件源码 项目:reactive-grpc 阅读 33 收藏 0 点赞 0 评论 0
@Override
public Flowable<NumberProto.Number> responsePressure(Single<Empty> request) {
    // Produce a very long sequence
    return Flowable
            .fromIterable(IntStream.range(0, NUMBER_OF_STREAM_ELEMENTS)::iterator)
            .delay(10, TimeUnit.MILLISECONDS)
            .doOnNext(i -> lastNumberProduced.set(i))
            .map(CancellationPropagationIntegrationTest::protoNum)
            .doOnCancel(() -> {
                wasCanceled.set(true);
                System.out.println("Server canceled");
            });
}
CancellationPropagationIntegrationTest.java 文件源码 项目:reactive-grpc 阅读 36 收藏 0 点赞 0 评论 0
@Override
public Flux<NumberProto.Number> responsePressure(Mono<Empty> request) {
    // Produce a very long sequence
    return Flux
            .fromIterable(IntStream.range(0, NUMBER_OF_STREAM_ELEMENTS)::iterator)
            .delayElements(Duration.ofMillis(SEQUENCE_DELAY_MILLIS))
            .doOnNext(i -> lastNumberProduced.set(i))
            .map(CancellationPropagationIntegrationTest::protoNum)
            .doOnCancel(() -> {
                wasCanceled.set(true);
                System.out.println("Server canceled");
            });
}
ShelfService.java 文件源码 项目:rejoiner 阅读 22 收藏 0 点赞 0 评论 0
@Override
public synchronized void deleteShelf(
    DeleteShelfRequest request, StreamObserver<Empty> responseObserver) {
  if (shelfsById.remove(request.getId()) == null) {
    throw new RuntimeException(String.format("Shelf with id=%s not found", request.getId()));
  }
}
BookService.java 文件源码 项目:rejoiner 阅读 29 收藏 0 点赞 0 评论 0
@Override
public synchronized void deleteBook(
    DeleteBookRequest request, StreamObserver<Empty> responseObserver) {
  if (booksById.remove(request.getId()) == null) {
    throw new RuntimeException(String.format("Book with id=%s not found", request.getId()));
  }
}
TimeServiceImpl.java 文件源码 项目:grpc-java-contrib 阅读 31 收藏 0 点赞 0 评论 0
@Override
public void getTime(Empty request, StreamObserver<TimeReply> responseObserver) {
    // JDK8 type
    Instant now = Instant.now();
    logger.info("Reporting the time " + now);

    // Protobuf type
    Timestamp protoNow = MoreTimestamps.fromInstantUtc(now);
    TimeReply reply = TimeReply.newBuilder().setTime(protoNow).build();

    // Respond
    responseObserver.onNext(reply);
    responseObserver.onCompleted();
}
HealthStatusService.java 文件源码 项目:dockerized-microservices 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Health status endpoint
 * @param request Empty request
 * @param responseObserver Response observer
 */
@Override
public void getPasswordsServiceHealthStatus(Empty request, StreamObserver<PasswordsServiceHealthStatus> responseObserver) {
    responseObserver.onNext(PasswordsServiceHealthStatus.newBuilder()
            .setStatus(passwordReader.getDict().size() == 0 ? "Error" : "Running")
            .setTotalPasswordsLoaded(passwordReader.getDict().size())
            .build());

    responseObserver.onCompleted();
}
PasswordsServiceClient.java 文件源码 项目:dockerized-microservices 阅读 30 收藏 0 点赞 0 评论 0
/**
 * A client to call the health status service
 * @return Map of the health status response
 */
public PassServiceHealthDto getHealthStatus() {
    ManagedChannel managedChannel = healthServiceManagedChannelSupplier.get();

    PasswordsServiceHealthStatus status = PasswordsServiceHealthServiceGrpc
            .newBlockingStub(managedChannel)
            .withDeadlineAfter(grpcTimeout, TimeUnit.MILLISECONDS)
            .withInterceptors(interceptor)
            .getPasswordsServiceHealthStatus(Empty.getDefaultInstance());

    return PassServiceHealthDto.builder()
            .status(status.getStatus())
            .dictSize(status.getTotalPasswordsLoaded())
            .build();
}
OperationsService.java 文件源码 项目:bazel-buildfarm 阅读 30 收藏 0 点赞 0 评论 0
@Override
public void cancelOperation(
    CancelOperationRequest request,
    StreamObserver<Empty> responseObserver) {
  Instance instance;
  try {
    instance = instances.getFromOperationName(request.getName());
  } catch (InstanceNotFoundException ex) {
    responseObserver.onError(BuildFarmInstances.toStatusException(ex));
    return;
  }

  instance.cancelOperation(request.getName());
  responseObserver.onCompleted();
}
_ProfileInfoService.java 文件源码 项目:generator-jhipster-grpc 阅读 34 收藏 0 点赞 0 评论 0
@Override
public Mono<ProfileInfo> getActiveProfiles(Mono<Empty> request) {
    return request.map(e -> {
        ProfileInfo.Builder builder = ProfileInfo.newBuilder();
        String[] activeProfiles = DefaultProfileUtil.getActiveProfiles(env);
        if (activeProfiles != null) {
            builder.addAllActiveProfiles(Arrays.asList(activeProfiles));
        }
        String ribbonEnv = getRibbonEnv(activeProfiles);
        if (ribbonEnv != null) {
            builder.setRibbonEnv(ribbonEnv);
        }
        return builder.build();
    });
}
_HealthService.java 文件源码 项目:generator-jhipster-grpc 阅读 29 收藏 0 点赞 0 评论 0
@Override
public Mono<Health> getHealth(Mono<Empty> request) {
    Map<String, HealthIndicator> healthIndicatorProtos = new HashMap<>();
    this.healthIndicators.forEach((key, indicator) -> healthIndicatorProtos.put(key, healthIndicatorToHealthIndicatorProto(indicator)));

    return request.map( e ->
        Health.newBuilder()
            .setStatus(Status.valueOf(this.healthIndicator.health().getStatus().toString()))
            .putAllHealthIndicators(healthIndicatorProtos)
            .build()
    );
}
_AuthenticationInterceptorTest.java 文件源码 项目:generator-jhipster-grpc 阅读 37 收藏 0 点赞 0 评论 0
private static void assertGetLoggersReturnsCode(LoggersServiceGrpc.LoggersServiceBlockingStub stub, Status.Code code) {
    try {
        stub.getLoggers(Empty.getDefaultInstance()).forEachRemaining(l -> {});
        failBecauseExceptionWasNotThrown(StatusRuntimeException.class);
    } catch (StatusRuntimeException e) {
        assertThat(e.getStatus().getCode()).isEqualTo(code);
    }
}
_ConfigurationPropertiesReportServiceIntTest.java 文件源码 项目:generator-jhipster-grpc 阅读 36 收藏 0 点赞 0 评论 0
@Test
public void getConfigurationProperties() throws IOException {
    ConfigurationPropertiesReport report = stub.getConfigurationProperties(Empty.newBuilder().build());
    String configurationPropertiesReportEndpointStr = report.getConfigurationPropertiesMap().get("configurationPropertiesReportEndpoint").getProperties();
    ObjectMapper mapper = new ObjectMapper();
    ConfigurationPropertiesReportEndpoint configurationPropertiesReportEndpoint = mapper.readValue(configurationPropertiesReportEndpointStr, ConfigurationPropertiesReportEndpoint.class);
    assertThat(configurationPropertiesReportEndpoint.getId()).isEqualTo(this.configurationPropertiesReportEndpoint.getId());
}


问题


面经


文章

微信
公众号

扫码关注公众号