Ejemplo n.º 1
0
  private void constructRepository(ServerNode server)
      throws IOException, InterruptedException, KeeperException, RepositoryException {
    AvroConverter remoteConverter = new AvroConverter();
    IdGeneratorImpl idGenerator = new IdGeneratorImpl();
    RemoteTypeManager typeManager =
        new RemoteTypeManager(
            parseAddressAndPort(server.lilyAddressAndPort),
            remoteConverter,
            idGenerator,
            zk,
            schemaCache);

    // TODO BlobManager can probably be shared across all repositories
    BlobManager blobManager = getBlobManager(zk, hbaseConnections);

    Configuration hbaseConf = getHBaseConfiguration(zk);
    hbaseConf = hbaseConnections.getExisting(hbaseConf);

    Repository repository =
        new RemoteRepository(
            parseAddressAndPort(server.lilyAddressAndPort),
            remoteConverter,
            typeManager,
            idGenerator,
            blobManager,
            hbaseConf);

    remoteConverter.setRepository(repository);

    if ("true".equals(System.getProperty("lilyclient.trace"))) {
      repository = TracingRepository.wrap(repository);
    }

    typeManager.start();
    server.repository = repository;
  }