Java 类org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface 实例源码

项目:pbase    文件:TestTokenAuthentication.java   
public TokenServer(Configuration conf) throws IOException {
  this.conf = conf;
  this.startcode = EnvironmentEdgeManager.currentTime();
  // Server to handle client requests.
  String hostname =
    Strings.domainNamePointerToHostName(DNS.getDefaultHost("default", "default"));
  int port = 0;
  // Creation of an ISA will force a resolve.
  InetSocketAddress initialIsa = new InetSocketAddress(hostname, port);
  if (initialIsa.getAddress() == null) {
    throw new IllegalArgumentException("Failed resolve of " + initialIsa);
  }
  final List<BlockingServiceAndInterface> sai =
    new ArrayList<BlockingServiceAndInterface>(1);
  BlockingService service =
    AuthenticationProtos.AuthenticationService.newReflectiveBlockingService(this);
  sai.add(new BlockingServiceAndInterface(service,
    AuthenticationProtos.AuthenticationService.BlockingInterface.class));
  this.rpcServer =
    new RpcServer(this, "tokenServer", sai, initialIsa, conf, new FifoRpcScheduler(conf, 1));
  this.isa = this.rpcServer.getListenerAddress();
  this.sleeper = new Sleeper(1000, this);
}
项目:HIndex    文件:TestTokenAuthentication.java   
public TokenServer(Configuration conf) throws IOException {
  this.conf = conf;
  this.startcode = EnvironmentEdgeManager.currentTimeMillis();
  // Server to handle client requests.
  String hostname =
    Strings.domainNamePointerToHostName(DNS.getDefaultHost("default", "default"));
  int port = 0;
  // Creation of an ISA will force a resolve.
  InetSocketAddress initialIsa = new InetSocketAddress(hostname, port);
  if (initialIsa.getAddress() == null) {
    throw new IllegalArgumentException("Failed resolve of " + initialIsa);
  }
  final List<BlockingServiceAndInterface> sai =
    new ArrayList<BlockingServiceAndInterface>(1);
  BlockingService service =
    AuthenticationProtos.AuthenticationService.newReflectiveBlockingService(this);
  sai.add(new BlockingServiceAndInterface(service,
    AuthenticationProtos.AuthenticationService.BlockingInterface.class));
  this.rpcServer =
    new RpcServer(this, "tokenServer", sai, initialIsa, conf, new FifoRpcScheduler(conf, 1));
  this.isa = this.rpcServer.getListenerAddress();
  this.sleeper = new Sleeper(1000, this);
}
项目:hbase    文件:RSRpcServices.java   
/**
 * By default, put up an Admin and a Client Service.
 * Set booleans <code>hbase.regionserver.admin.executorService</code> and
 * <code>hbase.regionserver.client.executorService</code> if you want to enable/disable services.
 * Default is that both are enabled.
 * @return immutable list of blocking services and the security info classes that this server
 * supports
 */
protected List<BlockingServiceAndInterface> getServices() {
  boolean admin =
    getConfiguration().getBoolean(REGIONSERVER_ADMIN_SERVICE_CONFIG, true);
  boolean client =
    getConfiguration().getBoolean(REGIONSERVER_CLIENT_SERVICE_CONFIG, true);
  List<BlockingServiceAndInterface> bssi = new ArrayList<>();
  if (client) {
    bssi.add(new BlockingServiceAndInterface(
    ClientService.newReflectiveBlockingService(this),
    ClientService.BlockingInterface.class));
  }
  if (admin) {
    bssi.add(new BlockingServiceAndInterface(
    AdminService.newReflectiveBlockingService(this),
    AdminService.BlockingInterface.class));
  }
  return new org.apache.hbase.thirdparty.com.google.common.collect.
      ImmutableList.Builder<BlockingServiceAndInterface>().addAll(bssi).build();
}
项目:hbase    文件:RpcServerFactory.java   
public static RpcServer createRpcServer(final Server server, final String name,
    final List<BlockingServiceAndInterface> services,
    final InetSocketAddress bindAddress, Configuration conf,
    RpcScheduler scheduler, boolean reservoirEnabled) throws IOException {
  String rpcServerClass = conf.get(CUSTOM_RPC_SERVER_IMPL_CONF_KEY,
      NettyRpcServer.class.getName());
  StringBuilder servicesList = new StringBuilder();
  for (BlockingServiceAndInterface s: services) {
    ServiceDescriptor sd = s.getBlockingService().getDescriptorForType();
    if (sd == null) continue; // Can be null for certain tests like TestTokenAuthentication
    if (servicesList.length() > 0) servicesList.append(", ");
    servicesList.append(sd.getFullName());
  }
  LOG.info("Creating " + rpcServerClass + " hosting " + servicesList);
  return ReflectionUtils.instantiateWithCustomCtor(rpcServerClass,
      new Class[] { Server.class, String.class, List.class,
        InetSocketAddress.class, Configuration.class, RpcScheduler.class, boolean.class },
      new Object[] { server, name, services, bindAddress, conf, scheduler, reservoirEnabled });
}
项目:hbase    文件:TestRpcHandlerException.java   
@Ignore
@Test
public void testRpcScheduler() throws IOException, InterruptedException {
  PriorityFunction qosFunction = mock(PriorityFunction.class);
  Abortable abortable = new AbortServer();
  CONF.set(RpcServerFactory.CUSTOM_RPC_SERVER_IMPL_CONF_KEY, rpcServerImpl);
  RpcScheduler scheduler = new SimpleRpcScheduler(CONF, 2, 0, 0, qosFunction, abortable, 0);
  RpcServer rpcServer = RpcServerFactory.createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new BlockingServiceAndInterface((BlockingService) SERVICE, null)),
      new InetSocketAddress("localhost", 0), CONF, scheduler);
  try (BlockingRpcClient client = new BlockingRpcClient(CONF)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    stub.echo(null, EchoRequestProto.newBuilder().setMessage("hello").build());
  } catch (Throwable e) {
    assert (abortable.isAborted() == true);
  } finally {
    rpcServer.stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
/**
 * Ensure we do not HAVE TO HAVE a codec.
 */
@Test
public void testNoCodec() throws IOException, ServiceException {
  Configuration conf = HBaseConfiguration.create();
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF,
      new FifoRpcScheduler(CONF, 1));
  try (AbstractRpcClient<?> client = createRpcClientNoCodec(conf)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    HBaseRpcController pcrc = new HBaseRpcControllerImpl();
    String message = "hello";
    assertEquals(message,
      stub.echo(pcrc, EchoRequestProto.newBuilder().setMessage(message).build()).getMessage());
    assertNull(pcrc.cellScanner());
  } finally {
    rpcServer.stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
@Test
public void testRTEDuringConnectionSetup() throws Exception {
  Configuration conf = HBaseConfiguration.create();
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF,
      new FifoRpcScheduler(CONF, 1));
  try (AbstractRpcClient<?> client = createRpcClientRTEDuringConnectionSetup(conf)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    stub.ping(null, EmptyRequestProto.getDefaultInstance());
    fail("Expected an exception to have been thrown!");
  } catch (Exception e) {
    LOG.info("Caught expected exception: " + e.toString());
    assertTrue(e.toString(), StringUtils.stringifyException(e).contains("Injected fault"));
  } finally {
    rpcServer.stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
/**
 * Tests that the rpc scheduler is called when requests arrive.
 */
@Test
public void testRpcScheduler() throws IOException, ServiceException, InterruptedException {
  RpcScheduler scheduler = spy(new FifoRpcScheduler(CONF, 1));
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF, scheduler);
  verify(scheduler).init((RpcScheduler.Context) anyObject());
  try (AbstractRpcClient<?> client = createRpcClient(CONF)) {
    rpcServer.start();
    verify(scheduler).start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    EchoRequestProto param = EchoRequestProto.newBuilder().setMessage("hello").build();
    for (int i = 0; i < 10; i++) {
      stub.echo(null, param);
    }
    verify(scheduler, times(10)).dispatch((CallRunner) anyObject());
  } finally {
    rpcServer.stop();
    verify(scheduler).stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
/**
 * Tests that the RpcServer creates & dispatches CallRunner object to scheduler with non-null
 * remoteAddress set to its Call Object
 * @throws ServiceException
 */
@Test
public void testRpcServerForNotNullRemoteAddressInCallObject()
    throws IOException, ServiceException {
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF,
      new FifoRpcScheduler(CONF, 1));
  InetSocketAddress localAddr = new InetSocketAddress("localhost", 0);
  try (AbstractRpcClient<?> client = createRpcClient(CONF)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    assertEquals(localAddr.getAddress().getHostAddress(),
      stub.addr(null, EmptyRequestProto.getDefaultInstance()).getAddr());
  } finally {
    rpcServer.stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
@Test
public void testRemoteError() throws IOException, ServiceException {
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF,
      new FifoRpcScheduler(CONF, 1));
  try (AbstractRpcClient<?> client = createRpcClient(CONF)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    stub.error(null, EmptyRequestProto.getDefaultInstance());
  } catch (ServiceException e) {
    LOG.info("Caught expected exception: " + e);
    IOException ioe = ProtobufUtil.handleRemoteException(e);
    assertTrue(ioe instanceof DoNotRetryIOException);
    assertTrue(ioe.getMessage().contains("server error!"));
  } finally {
    rpcServer.stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
/** Tests that the connection closing is handled by the client with outstanding RPC calls */
@Test
public void testConnectionCloseWithOutstandingRPCs() throws InterruptedException, IOException {
  Configuration conf = new Configuration(CONF);
  RpcServer rpcServer = createTestFailingRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF,
      new FifoRpcScheduler(CONF, 1));

  try (AbstractRpcClient<?> client = createRpcClient(conf)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    EchoRequestProto param = EchoRequestProto.newBuilder().setMessage("hello").build();
    stub.echo(null, param);
    fail("RPC should have failed because connection closed");
  } catch (ServiceException e) {
    LOG.info("Caught expected exception: " + e.toString());
  } finally {
    rpcServer.stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
@Test
public void testAsyncRemoteError() throws IOException {
  AbstractRpcClient<?> client = createRpcClient(CONF);
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF,
      new FifoRpcScheduler(CONF, 1));
  try {
    rpcServer.start();
    Interface stub = newStub(client, rpcServer.getListenerAddress());
    BlockingRpcCallback<EmptyResponseProto> callback = new BlockingRpcCallback<>();
    HBaseRpcController pcrc = new HBaseRpcControllerImpl();
    stub.error(pcrc, EmptyRequestProto.getDefaultInstance(), callback);
    assertNull(callback.get());
    assertTrue(pcrc.failed());
    LOG.info("Caught expected exception: " + pcrc.getFailed());
    IOException ioe = ProtobufUtil.handleRemoteException(pcrc.getFailed());
    assertTrue(ioe instanceof DoNotRetryIOException);
    assertTrue(ioe.getMessage().contains("server error!"));
  } finally {
    client.close();
    rpcServer.stop();
  }
}
项目:hbase    文件:IntegrationTestRpcClient.java   
RpcServer startServer() throws IOException {
  lock.writeLock().lock();
  try {
    if (rpcServers.size() >= maxServers) {
      return null;
    }

    RpcServer rpcServer = RpcServerFactory.createRpcServer(null,
        "testRpcServer", Lists
            .newArrayList(new BlockingServiceAndInterface(SERVICE, null)),
        new InetSocketAddress("localhost", 0), conf, new FifoRpcScheduler(
            conf, 1));
    rpcServer.start();
    InetSocketAddress address = rpcServer.getListenerAddress();
    if (address == null) {
      throw new IOException("Listener channel is closed");
    }
    rpcServers.put(address, rpcServer);
    serverList.add(rpcServer);
    LOG.info("Started server: " + address);
    return rpcServer;
  } finally {
    lock.writeLock().unlock();
  }
}
项目:PyroDB    文件:TestTokenAuthentication.java   
public TokenServer(Configuration conf) throws IOException {
  this.conf = conf;
  this.startcode = EnvironmentEdgeManager.currentTimeMillis();
  // Server to handle client requests.
  String hostname =
    Strings.domainNamePointerToHostName(DNS.getDefaultHost("default", "default"));
  int port = 0;
  // Creation of an ISA will force a resolve.
  InetSocketAddress initialIsa = new InetSocketAddress(hostname, port);
  if (initialIsa.getAddress() == null) {
    throw new IllegalArgumentException("Failed resolve of " + initialIsa);
  }
  final List<BlockingServiceAndInterface> sai =
    new ArrayList<BlockingServiceAndInterface>(1);
  BlockingService service =
    AuthenticationProtos.AuthenticationService.newReflectiveBlockingService(this);
  sai.add(new BlockingServiceAndInterface(service,
    AuthenticationProtos.AuthenticationService.BlockingInterface.class));
  this.rpcServer =
    new RpcServer(this, "tokenServer", sai, initialIsa, conf, new FifoRpcScheduler(conf, 1));
  this.isa = this.rpcServer.getListenerAddress();
  this.sleeper = new Sleeper(1000, this);
}
项目:c5    文件:TestTokenAuthentication.java   
public TokenServer(Configuration conf) throws IOException {
  this.conf = conf;
  this.startcode = EnvironmentEdgeManager.currentTimeMillis();
  // Server to handle client requests.
  String hostname =
    Strings.domainNamePointerToHostName(DNS.getDefaultHost("default", "default"));
  int port = 0;
  // Creation of an ISA will force a resolve.
  InetSocketAddress initialIsa = new InetSocketAddress(hostname, port);
  if (initialIsa.getAddress() == null) {
    throw new IllegalArgumentException("Failed resolve of " + initialIsa);
  }
  final List<BlockingServiceAndInterface> sai =
    new ArrayList<BlockingServiceAndInterface>(1);
  BlockingService service =
    AuthenticationProtos.AuthenticationService.newReflectiveBlockingService(this);
  sai.add(new BlockingServiceAndInterface(service,
    AuthenticationProtos.AuthenticationService.BlockingInterface.class));
  this.rpcServer =
    new RpcServer(this, "tokenServer", sai, initialIsa, 3, 1, conf, HConstants.QOS_THRESHOLD);
  this.isa = this.rpcServer.getListenerAddress();
  this.sleeper = new Sleeper(1000, this);
}
项目:ditb    文件:MasterRpcServices.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
protected List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(4);
  bssi.add(new BlockingServiceAndInterface(
    MasterService.newReflectiveBlockingService(this),
    MasterService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
    RegionServerStatusService.newReflectiveBlockingService(this),
    RegionServerStatusService.BlockingInterface.class));
  bssi.addAll(super.getServices());
  return bssi;
}
项目:ditb    文件:RSRpcServices.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
protected List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(2);
  bssi.add(new BlockingServiceAndInterface(
    ClientService.newReflectiveBlockingService(this),
    ClientService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
    AdminService.newReflectiveBlockingService(this),
    AdminService.BlockingInterface.class));
  return bssi;
}
项目:ditb    文件:TestTokenAuthentication.java   
public TokenServer(Configuration conf) throws IOException {
  this.conf = conf;
  this.startcode = EnvironmentEdgeManager.currentTime();
  // Server to handle client requests.
  String hostname =
    Strings.domainNamePointerToHostName(DNS.getDefaultHost("default", "default"));
  int port = 0;
  // Creation of an ISA will force a resolve.
  InetSocketAddress initialIsa = new InetSocketAddress(hostname, port);
  if (initialIsa.getAddress() == null) {
    throw new IllegalArgumentException("Failed resolve of " + initialIsa);
  }
  final List<BlockingServiceAndInterface> sai =
    new ArrayList<BlockingServiceAndInterface>(1);
  BlockingService service =
    AuthenticationProtos.AuthenticationService.newReflectiveBlockingService(this);
  sai.add(new BlockingServiceAndInterface(service,
    AuthenticationProtos.AuthenticationService.BlockingInterface.class));
  this.rpcServer =
    new RpcServer(this, "tokenServer", sai, initialIsa, conf, new FifoRpcScheduler(conf, 1));
  InetSocketAddress address = rpcServer.getListenerAddress();
  if (address == null) {
    throw new IOException("Listener channel is closed");
  }
  this.isa = address;
  this.sleeper = new Sleeper(1000, this);
}
项目:pbase    文件:MasterRpcServices.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
protected List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(4);
  bssi.add(new BlockingServiceAndInterface(
    MasterService.newReflectiveBlockingService(this),
    MasterService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
    RegionServerStatusService.newReflectiveBlockingService(this),
    RegionServerStatusService.BlockingInterface.class));
  bssi.addAll(super.getServices());
  return bssi;
}
项目:pbase    文件:RSRpcServices.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
protected List<BlockingServiceAndInterface> getServices() {
    List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(2);
    bssi.add(new BlockingServiceAndInterface(
            ClientService.newReflectiveBlockingService(this),
            ClientService.BlockingInterface.class));
    bssi.add(new BlockingServiceAndInterface(
            AdminService.newReflectiveBlockingService(this),
            AdminService.BlockingInterface.class));
    return bssi;
}
项目:HIndex    文件:HMaster.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
private List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(3);
  bssi.add(new BlockingServiceAndInterface(
      MasterProtos.MasterService.newReflectiveBlockingService(this),
      MasterProtos.MasterService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
      RegionServerStatusProtos.RegionServerStatusService.newReflectiveBlockingService(this),
      RegionServerStatusProtos.RegionServerStatusService.BlockingInterface.class));
  return bssi;
}
项目:HIndex    文件:HRegionServer.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
private List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(2);
  bssi.add(new BlockingServiceAndInterface(
      ClientProtos.ClientService.newReflectiveBlockingService(this),
      ClientProtos.ClientService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
      AdminProtos.AdminService.newReflectiveBlockingService(this),
      AdminProtos.AdminService.BlockingInterface.class));
  return bssi;
}
项目:hbase    文件:MasterRpcServices.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
@Override
protected List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<>(5);
  bssi.add(new BlockingServiceAndInterface(
    MasterService.newReflectiveBlockingService(this),
    MasterService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
    RegionServerStatusService.newReflectiveBlockingService(this),
    RegionServerStatusService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(LockService.newReflectiveBlockingService(this),
      LockService.BlockingInterface.class));
  bssi.addAll(super.getServices());
  return bssi;
}
项目:hbase    文件:TestRpcServerSlowConnectionSetup.java   
@Before
public void setUp() throws IOException {
  Configuration conf = HBaseConfiguration.create();
  conf.set(RpcServerFactory.CUSTOM_RPC_SERVER_IMPL_CONF_KEY, rpcServerImpl.getName());
  server = RpcServerFactory.createRpcServer(null, "testRpcServer",
    Lists.newArrayList(new BlockingServiceAndInterface(SERVICE, null)),
    new InetSocketAddress("localhost", 0), conf, new FifoRpcScheduler(conf, 1));
  server.start();
  socket = new Socket("localhost", server.getListenerAddress().getPort());
}
项目:hbase    文件:AbstractTestIPC.java   
/**
 * It is hard to verify the compression is actually happening under the wraps. Hope that if
 * unsupported, we'll get an exception out of some time (meantime, have to trace it manually to
 * confirm that compression is happening down in the client and server).
 */
@Test
public void testCompressCellBlock() throws IOException, ServiceException {
  Configuration conf = new Configuration(HBaseConfiguration.create());
  conf.set("hbase.client.rpc.compressor", GzipCodec.class.getCanonicalName());
  List<Cell> cells = new ArrayList<>();
  int count = 3;
  for (int i = 0; i < count; i++) {
    cells.add(CELL);
  }
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF,
      new FifoRpcScheduler(CONF, 1));

  try (AbstractRpcClient<?> client = createRpcClient(conf)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    HBaseRpcController pcrc = new HBaseRpcControllerImpl(CellUtil.createCellScanner(cells));
    String message = "hello";
    assertEquals(message,
      stub.echo(pcrc, EchoRequestProto.newBuilder().setMessage(message).build()).getMessage());
    int index = 0;
    CellScanner cellScanner = pcrc.cellScanner();
    assertNotNull(cellScanner);
    while (cellScanner.advance()) {
      assertEquals(CELL, cellScanner.current());
      index++;
    }
    assertEquals(count, index);
  } finally {
    rpcServer.stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
/** Tests that the rpc scheduler is called when requests arrive. */
@Test
public void testRpcMaxRequestSize() throws IOException, ServiceException {
  Configuration conf = new Configuration(CONF);
  conf.setInt(RpcServer.MAX_REQUEST_SIZE, 1000);
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), conf,
      new FifoRpcScheduler(conf, 1));
  try (AbstractRpcClient<?> client = createRpcClient(conf)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    StringBuilder message = new StringBuilder(1200);
    for (int i = 0; i < 200; i++) {
      message.append("hello.");
    }
    // set total RPC size bigger than 100 bytes
    EchoRequestProto param = EchoRequestProto.newBuilder().setMessage(message.toString()).build();
    stub.echo(
      new HBaseRpcControllerImpl(CellUtil.createCellScanner(ImmutableList.<Cell> of(CELL))),
      param);
    fail("RPC should have failed because it exceeds max request size");
  } catch (ServiceException e) {
    LOG.info("Caught expected exception: " + e);
    assertTrue(e.toString(),
        StringUtils.stringifyException(e).contains("RequestTooBigException"));
  } finally {
    rpcServer.stop();
  }
}
项目:hbase    文件:AbstractTestIPC.java   
@Test
public void testTimeout() throws IOException {
  RpcServer rpcServer = createRpcServer(null, "testRpcServer",
      Lists.newArrayList(new RpcServer.BlockingServiceAndInterface(
          SERVICE, null)), new InetSocketAddress("localhost", 0), CONF,
      new FifoRpcScheduler(CONF, 1));
  try (AbstractRpcClient<?> client = createRpcClient(CONF)) {
    rpcServer.start();
    BlockingInterface stub = newBlockingStub(client, rpcServer.getListenerAddress());
    HBaseRpcController pcrc = new HBaseRpcControllerImpl();
    int ms = 1000;
    int timeout = 100;
    for (int i = 0; i < 10; i++) {
      pcrc.reset();
      pcrc.setCallTimeout(timeout);
      long startTime = System.nanoTime();
      try {
        stub.pause(pcrc, PauseRequestProto.newBuilder().setMs(ms).build());
      } catch (ServiceException e) {
        long waitTime = (System.nanoTime() - startTime) / 1000000;
        // expected
        LOG.info("Caught expected exception: " + e);
        IOException ioe = ProtobufUtil.handleRemoteException(e);
        assertTrue(ioe.getCause() instanceof CallTimeoutException);
        // confirm that we got exception before the actual pause.
        assertTrue(waitTime < ms);
      }
    }
  } finally {
    rpcServer.stop();
  }
}
项目:PyroDB    文件:MasterRpcServices.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
protected List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(4);
  bssi.add(new BlockingServiceAndInterface(
    MasterService.newReflectiveBlockingService(this),
    MasterService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
    RegionServerStatusService.newReflectiveBlockingService(this),
    RegionServerStatusService.BlockingInterface.class));
  bssi.addAll(super.getServices());
  return bssi;
}
项目:PyroDB    文件:RSRpcServices.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
protected List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(2);
  bssi.add(new BlockingServiceAndInterface(
    ClientService.newReflectiveBlockingService(this),
    ClientService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
    AdminService.newReflectiveBlockingService(this),
    AdminService.BlockingInterface.class));
  return bssi;
}
项目:c5    文件:HMaster.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
private List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(3);
  bssi.add(new BlockingServiceAndInterface(
      MasterProtos.MasterService.newReflectiveBlockingService(this),
      MasterProtos.MasterService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
      RegionServerStatusProtos.RegionServerStatusService.newReflectiveBlockingService(this),
      RegionServerStatusProtos.RegionServerStatusService.BlockingInterface.class));
  return bssi;
}
项目:c5    文件:HRegionServer.java   
/**
 * @return list of blocking services and their security info classes that this server supports
 */
private List<BlockingServiceAndInterface> getServices() {
  List<BlockingServiceAndInterface> bssi = new ArrayList<BlockingServiceAndInterface>(2);
  bssi.add(new BlockingServiceAndInterface(
      ClientProtos.ClientService.newReflectiveBlockingService(this),
      ClientProtos.ClientService.BlockingInterface.class));
  bssi.add(new BlockingServiceAndInterface(
      AdminProtos.AdminService.newReflectiveBlockingService(this),
      AdminProtos.AdminService.BlockingInterface.class));
  return bssi;
}
项目:hbase    文件:RpcServerFactory.java   
public static RpcServer createRpcServer(final Server server, final String name,
    final List<BlockingServiceAndInterface> services, final InetSocketAddress bindAddress,
    Configuration conf, RpcScheduler scheduler) throws IOException {
  return createRpcServer(server, name, services, bindAddress, conf, scheduler, true);
}
项目:hbase    文件:AbstractTestIPC.java   
protected abstract RpcServer createRpcServer(final Server server, final String name,
final List<BlockingServiceAndInterface> services,
final InetSocketAddress bindAddress, Configuration conf,
RpcScheduler scheduler) throws IOException;
项目:hbase    文件:AbstractTestIPC.java   
protected abstract RpcServer createTestFailingRpcServer(final Server server, final String name,
final List<BlockingServiceAndInterface> services,
final InetSocketAddress bindAddress, Configuration conf,
RpcScheduler scheduler) throws IOException;