final RepositoryResolver resolver = RepositoryResolver.lookup(parentUri); URI repoURI = resolver.buildRepoURI(parentUri, newRepoName); hints.uri(repoURI); } else if (dbName != null && dbPassword != null) {
private RepoInfo toRepoInfo(RepositoryResolver resolver, URI rootRepoURI, String repoName) { URI repoURI = resolver.buildRepoURI(rootRepoURI, repoName); Repository repo; try { repo = resolver.open(repoURI); } catch (RepositoryConnectionException e) { throw new CommandFailedException(e); } try { return toRepoInfo(repoName, repo); } finally { repo.close(); } }
@VisibleForTesting Repository loadGeoGIG(final String repoName) { LOG.info( "Loading repository " + repoName + " using " + resolver.getClass().getSimpleName()); Hints hints = new Hints(); final URI repoURI = resolver.buildRepoURI(rootRepoURI, repoName); hints.set(Hints.REPOSITORY_URL, repoURI); hints.set(Hints.REPOSITORY_NAME, repoName); Context context = GlobalContextBuilder.builder().build(hints); Repository repository = context.repository(); if (!repository.isOpen()) { // Only open it if is was an existing repository. for (String existingRepo : resolver.listRepoNamesUnderRootURI(rootRepoURI)) { if (existingRepo.equals(repoName)) { try { repository.open(); } catch (RepositoryConnectionException e) { throw Throwables.propagate(e); } break; } } } return repository; }
private static Optional<Repository> createGeoGIG(RepositoryResolver defaultResolver, URI rootRepoURI, String repositoryName, Map<String, String> parameters) { try { final Hints hints = InitRequestUtil.createHintsFromParameters(repositoryName, parameters); Optional<Serializable> repositoryUri = hints.get(Hints.REPOSITORY_URL); if (!repositoryUri.isPresent()) { URI repoURI = defaultResolver.buildRepoURI(rootRepoURI, repositoryName); hints.set(Hints.REPOSITORY_URL, repoURI); repositoryUri = hints.get(Hints.REPOSITORY_URL); } final URI repoUri = URI.create(repositoryUri.get().toString()); final RepositoryResolver resolver = RepositoryResolver.lookup(repoUri); final Repository repository = GlobalContextBuilder.builder().build(hints).repository(); if (resolver.repoExists(repoUri)) { // open it repository.open(); } // now build the repo with the Hints return Optional.fromNullable(repository); } catch (Exception ex) { Throwables.propagate(ex); } return Optional.absent(); } }