Search in sources :

Example 66 with Server

use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.Server in project jetcd by coreos.

the class AuthUnitTest method testHeaders.

@Test
public void testHeaders() throws Exception {
    MutableHandlerRegistry serviceRegistry = new MutableHandlerRegistry();
    serviceRegistry.addService(new AuthGrpc.AuthImplBase() {

        @Override
        public void authenticate(io.etcd.jetcd.api.AuthenticateRequest request, io.grpc.stub.StreamObserver<io.etcd.jetcd.api.AuthenticateResponse> responseObserver) {
            responseObserver.onNext(AuthenticateResponse.newBuilder().setToken("token").build());
        }
    });
    serviceRegistry.addService(new KVGrpc.KVImplBase() {

        @Override
        public void put(io.etcd.jetcd.api.PutRequest request, io.grpc.stub.StreamObserver<io.etcd.jetcd.api.PutResponse> responseObserver) {
            responseObserver.onNext(PutResponse.newBuilder().build());
        }
    });
    Server server = null;
    Client client = null;
    try {
        Metadata intercepted = new Metadata();
        server = NettyServerBuilder.forPort(0).fallbackHandlerRegistry(serviceRegistry).intercept(new ServerInterceptor() {

            @Override
            public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata headers, ServerCallHandler<ReqT, RespT> next) {
                if (AUTHENTICATE_METHOD_NAME.equals(call.getMethodDescriptor().getFullMethodName())) {
                    intercepted.merge(headers);
                }
                return next.startCall(new ForwardingServerCall.SimpleForwardingServerCall<>(call) {
                }, headers);
            }
        }).directExecutor().build().start();
        client = Client.builder().endpoints(new URI("http://127.0.0.1:" + server.getPort())).user(user).password(userPass).authHeader("foo-a", "foo-auth").header("bar-h", "bar").build();
        client.getKVClient().put(key, value).get(30, TimeUnit.SECONDS);
        assertThat(intercepted.keys()).contains("foo-a");
    } finally {
        if (client != null) {
            client.close();
        }
        if (server != null) {
            server.shutdownNow();
        }
    }
}
Also used : AuthenticateResponse(io.etcd.jetcd.api.AuthenticateResponse) Server(io.grpc.Server) Metadata(io.grpc.Metadata) PutResponse(io.etcd.jetcd.api.PutResponse) URI(java.net.URI) Client(io.etcd.jetcd.Client) MutableHandlerRegistry(io.grpc.util.MutableHandlerRegistry) KVGrpc(io.etcd.jetcd.api.KVGrpc) AuthGrpc(io.etcd.jetcd.api.AuthGrpc) ServerInterceptor(io.grpc.ServerInterceptor) Test(org.junit.jupiter.api.Test)

Example 67 with Server

use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.Server in project dubbo by alibaba.

the class GrpcProtocol method doExport.

@Override
protected <T> Runnable doExport(T proxiedImpl, Class<T> type, URL url) throws RpcException {
    String key = url.getAddress();
    ProtocolServer protocolServer = serverMap.computeIfAbsent(key, k -> {
        DubboHandlerRegistry registry = new DubboHandlerRegistry();
        NettyServerBuilder builder = NettyServerBuilder.forPort(url.getPort()).fallbackHandlerRegistry(registry);
        Server originalServer = GrpcOptionsUtils.buildServerBuilder(url, builder).build();
        GrpcRemotingServer remotingServer = new GrpcRemotingServer(originalServer, registry);
        return new ProxyProtocolServer(remotingServer);
    });
    GrpcRemotingServer grpcServer = (GrpcRemotingServer) protocolServer.getRemotingServer();
    ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();
    ProviderModel providerModel = serviceRepository.lookupExportedService(url.getServiceKey());
    if (providerModel == null) {
        throw new IllegalStateException("Service " + url.getServiceKey() + "should have already been stored in service repository, " + "but failed to find it.");
    }
    Object originalImpl = providerModel.getServiceInstance();
    Class<?> implClass = originalImpl.getClass();
    try {
        Method method = implClass.getMethod("setProxiedImpl", type);
        method.invoke(originalImpl, proxiedImpl);
    } catch (Exception e) {
        throw new IllegalStateException("Failed to set dubbo proxied service impl to stub, please make sure your stub " + "was generated by the dubbo-protoc-compiler.", e);
    }
    grpcServer.getRegistry().addService((BindableService) originalImpl, url.getServiceKey());
    if (!grpcServer.isStarted()) {
        grpcServer.start();
    }
    return () -> grpcServer.getRegistry().removeService(url.getServiceKey());
}
Also used : NettyServerBuilder(io.grpc.netty.NettyServerBuilder) ProtocolServer(org.apache.dubbo.rpc.ProtocolServer) Server(io.grpc.Server) Method(java.lang.reflect.Method) ServiceRepository(org.apache.dubbo.rpc.model.ServiceRepository) IOException(java.io.IOException) RpcException(org.apache.dubbo.rpc.RpcException) InvocationTargetException(java.lang.reflect.InvocationTargetException) ProtocolServer(org.apache.dubbo.rpc.ProtocolServer) ProviderModel(org.apache.dubbo.rpc.model.ProviderModel)

Example 68 with Server

use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.Server in project grakn by graknlabs.

the class GraknEngineServerFactory method configureGrpcServer.

private static GrpcServer configureGrpcServer(GraknConfig config, EngineGraknTxFactory engineGraknTxFactory, PostProcessor postProcessor) {
    int grpcPort = config.getProperty(GraknConfigKey.GRPC_PORT);
    GrpcOpenRequestExecutor requestExecutor = new GrpcOpenRequestExecutorImpl(engineGraknTxFactory);
    Server grpcServer = ServerBuilder.forPort(grpcPort).addService(new GrpcGraknService(requestExecutor, postProcessor)).build();
    return GrpcServer.create(grpcServer);
}
Also used : Server(io.grpc.Server) GrpcServer(ai.grakn.engine.rpc.GrpcServer) GrpcOpenRequestExecutorImpl(ai.grakn.engine.rpc.GrpcOpenRequestExecutorImpl) GrpcOpenRequestExecutor(ai.grakn.grpc.GrpcOpenRequestExecutor) GrpcGraknService(ai.grakn.engine.rpc.GrpcGraknService)

Example 69 with Server

use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.Server in project grakn by graknlabs.

the class GraknEngineServerTest method createGraknEngineServer.

private GraknEngineServer createGraknEngineServer(RedisWrapper redisWrapper) {
    // grakn engine configuration
    EngineID engineId = EngineID.me();
    GraknEngineStatus status = new GraknEngineStatus();
    MetricRegistry metricRegistry = new MetricRegistry();
    // distributed locks
    LockProvider lockProvider = new JedisLockProvider(redisWrapper.getJedisPool());
    graknKeyspaceStore = GraknKeyspaceStoreFake.of();
    // tx-factory
    EngineGraknTxFactory engineGraknTxFactory = EngineGraknTxFactory.create(lockProvider, config, graknKeyspaceStore);
    // post-processing
    IndexStorage indexStorage = RedisIndexStorage.create(redisWrapper.getJedisPool(), metricRegistry);
    CountStorage countStorage = RedisCountStorage.create(redisWrapper.getJedisPool(), metricRegistry);
    IndexPostProcessor indexPostProcessor = IndexPostProcessor.create(lockProvider, indexStorage);
    CountPostProcessor countPostProcessor = CountPostProcessor.create(config, engineGraknTxFactory, lockProvider, metricRegistry, countStorage);
    PostProcessor postProcessor = PostProcessor.create(indexPostProcessor, countPostProcessor);
    // http services: spark, http controller, and gRPC server
    Service sparkHttp = Service.ignite();
    Collection<HttpController> httpControllers = Collections.emptyList();
    int grpcPort = config.getProperty(GraknConfigKey.GRPC_PORT);
    GrpcOpenRequestExecutor requestExecutor = new GrpcOpenRequestExecutorImpl(engineGraknTxFactory);
    Server server = ServerBuilder.forPort(grpcPort).addService(new GrpcGraknService(requestExecutor, postProcessor)).build();
    GrpcServer grpcServer = GrpcServer.create(server);
    QueueSanityCheck queueSanityCheck = new RedisSanityCheck(redisWrapper);
    return GraknEngineServerFactory.createGraknEngineServer(engineId, config, status, sparkHttp, httpControllers, grpcServer, engineGraknTxFactory, metricRegistry, queueSanityCheck, lockProvider, postProcessor, graknKeyspaceStore);
}
Also used : EngineID(ai.grakn.engine.util.EngineID) RedisServer(ai.grakn.redismock.RedisServer) Server(io.grpc.Server) GrpcServer(ai.grakn.engine.rpc.GrpcServer) GrpcOpenRequestExecutorImpl(ai.grakn.engine.rpc.GrpcOpenRequestExecutorImpl) IndexPostProcessor(ai.grakn.engine.task.postprocessing.IndexPostProcessor) MetricRegistry(com.codahale.metrics.MetricRegistry) EngineGraknTxFactory(ai.grakn.engine.factory.EngineGraknTxFactory) GrpcOpenRequestExecutor(ai.grakn.grpc.GrpcOpenRequestExecutor) GrpcGraknService(ai.grakn.engine.rpc.GrpcGraknService) Service(spark.Service) GrpcServer(ai.grakn.engine.rpc.GrpcServer) CountPostProcessor(ai.grakn.engine.task.postprocessing.CountPostProcessor) HttpController(ai.grakn.engine.controller.HttpController) JedisLockProvider(ai.grakn.engine.lock.JedisLockProvider) LockProvider(ai.grakn.engine.lock.LockProvider) JedisLockProvider(ai.grakn.engine.lock.JedisLockProvider) IndexStorage(ai.grakn.engine.task.postprocessing.IndexStorage) RedisIndexStorage(ai.grakn.engine.task.postprocessing.redisstorage.RedisIndexStorage) QueueSanityCheck(ai.grakn.engine.data.QueueSanityCheck) CountStorage(ai.grakn.engine.task.postprocessing.CountStorage) RedisCountStorage(ai.grakn.engine.task.postprocessing.redisstorage.RedisCountStorage) RedisSanityCheck(ai.grakn.engine.data.RedisSanityCheck) IndexPostProcessor(ai.grakn.engine.task.postprocessing.IndexPostProcessor) CountPostProcessor(ai.grakn.engine.task.postprocessing.CountPostProcessor) PostProcessor(ai.grakn.engine.task.postprocessing.PostProcessor) GrpcGraknService(ai.grakn.engine.rpc.GrpcGraknService)

Example 70 with Server

use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.Server in project pravega by pravega.

the class ControllerImplTest method testKeepAliveWithServer.

@Test
public void testKeepAliveWithServer() throws Exception {
    // Verify that the same RPC with permissible keepalive time succeeds.
    int serverPort2 = TestUtils.getAvailableListenPort();
    NettyServerBuilder testServerBuilder = NettyServerBuilder.forPort(serverPort2).addService(testServerImpl).permitKeepAliveTime(KEEP_ALIVE_TEST_PERMIT_TIME_MILLIS, TimeUnit.MILLISECONDS);
    if (testSecure) {
        testServerBuilder = testServerBuilder.useTransportSecurity(new File(SecurityConfigDefaults.TLS_SERVER_CERT_PATH), new File(SecurityConfigDefaults.TLS_SERVER_PRIVATE_KEY_PATH));
    }
    @Cleanup("shutdownNow") Server testServer = testServerBuilder.build().start();
    NettyChannelBuilder builder = NettyChannelBuilder.forAddress("localhost", serverPort2).keepAliveTime(KEEP_ALIVE_TEST_KEEP_ALIVE_MILLIS, TimeUnit.MILLISECONDS);
    if (testSecure) {
        builder = builder.sslContext(GrpcSslContexts.forClient().trustManager(new File(SecurityConfigDefaults.TLS_CA_CERT_PATH)).build());
    } else {
        builder = builder.usePlaintext();
    }
    @Cleanup final ControllerImpl controller1 = new ControllerImpl(builder, ControllerImplConfig.builder().clientConfig(ClientConfig.builder().trustStore(SecurityConfigDefaults.TLS_CA_CERT_PATH).controllerURI(URI.create((testSecure ? "tls://" : "tcp://") + "localhost:" + serverPort)).build()).retryAttempts(1).initialBackoffMillis(1).build(), this.executor);
    val createStreamStatus = controller1.createStream("scope1", "streamdelayed", StreamConfiguration.builder().scalingPolicy(ScalingPolicy.fixed(1)).build());
    assertTrue(createStreamStatus.get());
    testServer.shutdownNow();
}
Also used : lombok.val(lombok.val) NettyServerBuilder(io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder) Server(io.grpc.Server) NettyChannelBuilder(io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder) File(java.io.File) Cleanup(lombok.Cleanup) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)76 Server (io.grpc.Server)68 IOException (java.io.IOException)27 ByteString (org.apache.beam.vendor.grpc.v1p43p2.com.google.protobuf.ByteString)24 ArrayList (java.util.ArrayList)21 StreamObserver (org.apache.beam.vendor.grpc.v1p43p2.io.grpc.stub.StreamObserver)21 ExecutionException (java.util.concurrent.ExecutionException)20 TimeoutException (java.util.concurrent.TimeoutException)20 CountDownLatch (java.util.concurrent.CountDownLatch)19 ManagedChannel (org.apache.beam.vendor.grpc.v1p43p2.io.grpc.ManagedChannel)19 Server (org.apache.beam.vendor.grpc.v1p43p2.io.grpc.Server)18 StatusException (io.grpc.StatusException)17 Metadata (io.grpc.Metadata)12 List (java.util.List)12 BeamFnApi (org.apache.beam.model.fnexecution.v1.BeamFnApi)12 FilterChain (io.grpc.xds.EnvoyServerProtoData.FilterChain)11 ExecutorService (java.util.concurrent.ExecutorService)11 ParallelInstruction (com.google.api.services.dataflow.model.ParallelInstruction)10 ServerCall (io.grpc.ServerCall)10 StreamObserver (io.grpc.stub.StreamObserver)10