类io.grpc.ServerServiceDefinition源码实例Demo

下面列出了怎么用io.grpc.ServerServiceDefinition的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: armeria   文件: FramedGrpcService.java
@Override
public void serviceAdded(ServiceConfig cfg) {
    if (maxInboundMessageSizeBytes == ArmeriaMessageDeframer.NO_MAX_INBOUND_MESSAGE_SIZE) {
        maxInboundMessageSizeBytes = (int) Math.min(cfg.maxRequestLength(), Integer.MAX_VALUE);
    }

    if (protoReflectionServiceInterceptor != null) {
        final Map<String, ServerServiceDefinition> grpcServices =
                cfg.server().config().virtualHosts().stream()
                   .flatMap(host -> host.serviceConfigs().stream())
                   .map(serviceConfig -> serviceConfig.service().as(FramedGrpcService.class))
                   .filter(Objects::nonNull)
                   .flatMap(service -> service.services().stream())
                   // Armeria allows the same service to be registered multiple times at different
                   // paths, but proto reflection service only supports a single instance of each
                   // service so we dedupe here.
                   .collect(toImmutableMap(def -> def.getServiceDescriptor().getName(),
                                           Function.identity(),
                                           (a, b) -> a));
        protoReflectionServiceInterceptor.setServer(newDummyServer(grpcServices));
    }
}
 
源代码2 项目: grpc-java   文件: HelloJsonServer.java
@Override
public ServerServiceDefinition bindService() {
  return io.grpc.ServerServiceDefinition
      .builder(GreeterGrpc.getServiceDescriptor().getName())
      .addMethod(HelloJsonClient.HelloJsonStub.METHOD_SAY_HELLO,
          asyncUnaryCall(
              new UnaryMethod<HelloRequest, HelloReply>() {
                @Override
                public void invoke(
                    HelloRequest request, StreamObserver<HelloReply> responseObserver) {
                  sayHello(request, responseObserver);
                }
              }))
      .build();
}
 
源代码3 项目: grpc-nebula-java   文件: ServerImplTest.java
@Test
public void handlerRegistryPriorities() throws Exception {
  fallbackRegistry = mock(HandlerRegistry.class);
  builder.addService(
      ServerServiceDefinition.builder(new ServiceDescriptor("Waiter", METHOD))
          .addMethod(METHOD, callHandler).build());
  transportServer = new SimpleServer();
  createAndStartServer();

  ServerTransportListener transportListener
      = transportServer.registerNewServerTransport(new SimpleServerTransport());
  transportListener.transportReady(Attributes.EMPTY);
  Metadata requestHeaders = new Metadata();
  StatsTraceContext statsTraceCtx =
      StatsTraceContext.newServerContext(streamTracerFactories, "Waiter/serve", requestHeaders);
  when(stream.statsTraceContext()).thenReturn(statsTraceCtx);

  // This call will be handled by callHandler from the internal registry
  transportListener.streamCreated(stream, "Waiter/serve", requestHeaders);
  assertEquals(1, executor.runDueTasks());
  verify(callHandler).startCall(Matchers.<ServerCall<String, Integer>>anyObject(),
      Matchers.<Metadata>anyObject());
  // This call will be handled by the fallbackRegistry because it's not registred in the internal
  // registry.
  transportListener.streamCreated(stream, "Service1/Method2", requestHeaders);
  assertEquals(1, executor.runDueTasks());
  verify(fallbackRegistry).lookupMethod("Service1/Method2", AUTHORITY);

  verifyNoMoreInteractions(callHandler);
  verifyNoMoreInteractions(fallbackRegistry);
}
 
源代码4 项目: grpc-java   文件: TestSdsServer.java
/**
 * Starts the server with given transport params.
 *
 * @param name UDS pathname or server name for {@link InProcessServerBuilder}
 * @param useUds creates a UDS based server if true.
 * @param useInterceptor if true, uses {@link SdsServerInterceptor} to grab & save Jwt Token.
 */
void startServer(String name, boolean useUds, boolean useInterceptor) throws IOException {
  checkNotNull(name, "name");
  discoveryService = new SecretDiscoveryServiceImpl();
  ServerServiceDefinition serviceDefinition = discoveryService.bindService();

  if (useInterceptor) {
    serviceDefinition =
        ServerInterceptors.intercept(serviceDefinition, new SdsServerInterceptor());
  }
  if (useUds) {
    elg = new EpollEventLoopGroup();
    boss = new EpollEventLoopGroup(1);
    server =
        NettyServerBuilder.forAddress(new DomainSocketAddress(name))
            .bossEventLoopGroup(boss)
            .workerEventLoopGroup(elg)
            .channelType(EpollServerDomainSocketChannel.class)
            .addService(serviceDefinition)
            .directExecutor()
            .build()
            .start();
  } else {
    server =
        InProcessServerBuilder.forName(name)
            .addService(serviceDefinition)
            .directExecutor()
            .build()
            .start();
  }
}
 
源代码5 项目: grpc-java   文件: ClientCallsTest.java
@Test
public void blockingServerStreamingCall_interruptedWaitsForOnClose() throws Exception {
  Integer req = 2;

  class NoopServerStreamingMethod implements ServerStreamingMethod<Integer, Integer> {
    ServerCallStreamObserver<Integer> observer;

    @Override public void invoke(Integer request, StreamObserver<Integer> responseObserver) {
      observer = (ServerCallStreamObserver<Integer>) responseObserver;
    }
  }

  NoopServerStreamingMethod methodImpl = new NoopServerStreamingMethod();
  server = InProcessServerBuilder.forName("noop").directExecutor()
      .addService(ServerServiceDefinition.builder("some")
          .addMethod(SERVER_STREAMING_METHOD, ServerCalls.asyncServerStreamingCall(methodImpl))
          .build())
      .build().start();

  InterruptInterceptor interceptor = new InterruptInterceptor();
  channel = InProcessChannelBuilder.forName("noop")
      .directExecutor()
      .intercept(interceptor)
      .build();
  Iterator<Integer> iter = ClientCalls.blockingServerStreamingCall(
      channel.newCall(SERVER_STREAMING_METHOD, CallOptions.DEFAULT), req);
  try {
    iter.next();
    fail();
  } catch (StatusRuntimeException ex) {
    assertTrue(Thread.interrupted());
    assertTrue("interrupted", ex.getCause() instanceof InterruptedException);
  }
  assertTrue("onCloseCalled", interceptor.onCloseCalled);
  assertTrue("context not cancelled", methodImpl.observer.isCancelled());
}
 
源代码6 项目: cloudbreak   文件: GrpcServer.java
@PostConstruct
public void start() {
    checkState(server == null);
    try {
        ServerBuilder builder = ServerBuilder.forPort(port);
        for (ServerServiceDefinition serviceDefinition : serviceDefinitions) {
            LOG.info("Starting {} service on port {}.", serviceDefinition.getServiceDescriptor().getName(), port);
            builder.addService(serviceDefinition);
        }
        server = builder.build().start();
        LOG.info("Server started.");
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
 
源代码7 项目: heroic   文件: GrpcRpcProtocolServer.java
private ServerServiceDefinition bindService() {
    final ServerServiceDefinition.Builder builder =
        ServerServiceDefinition.builder(GrpcRpcProtocol.SERVICE);

    for (final GrpcEndpointHandle<?, ?> spec : container.getEndpoints()) {
        final ServerCallHandler<byte[], byte[]> handler =
            serverCallHandlerFor((GrpcEndpointHandle<Object, Object>) spec);
        builder.addMethod(spec.descriptor(), handler);
    }

    return builder.build();
}
 
源代码8 项目: google-ads-java   文件: MockSharedSetService.java
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码10 项目: google-ads-java   文件: MockMediaFileService.java
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码11 项目: grpc-nebula-java   文件: RegistryServiceTest.java
/**
 * 测试注册新服务
 *
 * @author sxp
 * @since 2019/7/10
 */
private static void testRegisterNewService(RegistryServiceTest testServer) throws Exception {
  logger.info("sleep 15 seconds...");
  TimeUnit.SECONDS.sleep(15);
  logger.info("测试注册新服务...");

  String ip = IpUtils.getIP4WithPriority();
  Provider provider = new Provider();

  Map<String, String> parameters;
  URL queryUrl;
  List<URL> urls;

  Server server = testServer.getServer();
  int port = server.getPort();

  logger.info("开始注册服务...");

  // 构造入参ServerServiceDefinition
  GreeterGrpc.GreeterImplBase greeterImpl = new GreeterPartImpl();
  ServerServiceDefinition serviceDefinition = greeterImpl.bindService();

  // 调用注册新服务的接口
  BusinessResult result = Registry.registerNewService(server, serviceDefinition);

  String serviceName = serviceDefinition.getServiceDescriptor().getName();
  if (result.isSuccess()) {
    logger.info("注册新服务[" + serviceName + "]成功");
  } else {
    logger.info("注册新服务[" + serviceName + "]失败," + result.getMessage());
  }

  if (result.isSuccess()) {
    parameters = new HashMap<>(MapUtils.capacity(2));
    parameters.put(GlobalConstants.Consumer.Key.INTERFACE, serviceName);
    parameters.put(GlobalConstants.CommonKey.CATEGORY, RegistryConstants.PROVIDERS_CATEGORY);
    queryUrl = new URL(RegistryConstants.GRPC_PROTOCOL, ip, port, parameters);
    urls = provider.lookup(queryUrl);
    logger.info("服务注册信息为[" + urls.get(0).toString() + "]");
  }

  logger.info("测试注册新服务: work done.");
}
 
源代码12 项目: google-ads-java   文件: MockCampaignService.java
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码14 项目: grpc-nebula-java   文件: ProtoReflectionService.java
public ServerReflectionIndex(
    List<ServerServiceDefinition> immutableServices,
    List<ServerServiceDefinition> mutableServices) {
  immutableServicesIndex = new FileDescriptorIndex(immutableServices);
  mutableServicesIndex = new FileDescriptorIndex(mutableServices);
}
 
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码17 项目: google-ads-java   文件: MockCustomerLabelService.java
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码18 项目: pinpoint   文件: StatServiceFactory.java
@Override
protected ServerServiceDefinition newServerServiceDefinition() {
    BindableService spanService = new StatService(dispatchHandler, serverRequestFactory);
    return spanService.bindService();
}
 
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码20 项目: google-ads-java   文件: MockCampaignDraftService.java
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码21 项目: pinpoint   文件: SpanServiceFactory.java
@Override
protected ServerServiceDefinition newServerServiceDefinition() {
    BindableService spanService = new SpanService(dispatchHandler, serverRequestFactory);
    return spanService.bindService();
}
 
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码23 项目: titus-control-plane   文件: TitusGrpcServer.java
private ServiceBuilder(ServerServiceDefinition serviceDefinition, List<ServerInterceptor> interceptors) {
    this.serviceDefinition = serviceDefinition;
    this.interceptors = interceptors;
}
 
源代码24 项目: google-ads-java   文件: MockAdGroupAdService.java
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码25 项目: skywalking   文件: MockGRPCHandlerRegister.java
@Override
public void addHandler(ServerServiceDefinition definition) {
}
 
源代码26 项目: google-ads-java   文件: MockAccountBudgetService.java
@Override
public ServerServiceDefinition getServiceDefinition() {
  return serviceImpl.bindService();
}
 
源代码27 项目: grpc-java   文件: ServerWrapperForXds.java
@Override
public List<ServerServiceDefinition> getImmutableServices() {
  return delegate.getImmutableServices();
}
 
源代码28 项目: pinpoint   文件: ServerFactory.java
public void addService(ServerServiceDefinition serverServiceDefinition) {
    Assert.requireNonNull(serverServiceDefinition, "serverServiceDefinition");
    this.bindableServices.add(serverServiceDefinition);
}
 
@Override
public List<ServerServiceDefinition> getServices() {
  return Collections.emptyList();
}
 
@Override
public final T addService(ServerServiceDefinition service) {
  registryBuilder.addService(service);
  return thisT();
}
 
 类所在包
 同包方法