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();
}
}
}
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());
}
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);
}
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);
}
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();
}
Aggregations