public Repository getRepository(String repositoryName, String tableName) throws InterruptedException, RepositoryException { if (!repositoryModel.repositoryExistsAndActive(repositoryName)) { throw new RepositoryUnavailableException("Repository does not exist or is not active: " + repositoryName); } RepoTableKey key = new RepoTableKey(repositoryName, tableName); if (!repositoryCache.containsKey(key)) { synchronized (repositoryCache) { if (!repositoryCache.containsKey(key)) { repositoryCache.put(key, createRepository(key)); } } } return repositoryCache.get(key); }
System.out.println("Waiting for repository to become active. This will only work when a Lily server is running."); System.out.println("You can safely interrupt this with ctrl+c"); while (!repositoryModel.repositoryExistsAndActive(repositoryName)) { System.out.print("."); Thread.sleep(1000L);
public void setupRepository(String repositoryName) throws Exception { if (repositoryManagerSetup) { return; } setupTypeManager(); if (!repositoryModel.repositoryExistsAndActive(repositoryName)) { repositoryModel.create(repositoryName); repositoryModel.waitUntilRepositoryInState(repositoryName, RepositoryDefinition.RepositoryLifecycleState .ACTIVE, 100000); } blobStoreAccessFactory = createBlobAccess(); blobManager = new BlobManagerImpl(hbaseTableFactory, blobStoreAccessFactory, false); RecordFactory recordFactory = new RecordFactoryImpl(); repositoryManager = new HBaseRepositoryManager(typeManager, idGenerator, recordFactory, hbaseTableFactory, blobManager, hadoopConf, repositoryModel) { @Override protected Repository createRepository(RepoTableKey key) throws InterruptedException, RepositoryException { HBaseRepository repository = (HBaseRepository)super.createRepository(key); repository.setRecordUpdateHooks(recordUpdateHooks); return repository; } }; sepModel = new SepModelImpl(new ZooKeeperItfAdapter(zk), hadoopConf); eventPublisherManager = new LilyEventPublisherManager(hbaseTableFactory); tableManager = new TableManagerImpl(repositoryName, hadoopConf, hbaseTableFactory); if (!tableManager.tableExists(Table.RECORD.name)) { tableManager.createTable(Table.RECORD.name); } repositoryManagerSetup = true; }