/** * @param fileBasedRepositoryConfiguration configuration of the filebased repository. The contained repositoryPath * may be null */ public FilebasedRepository(FileBasedRepositoryConfiguration fileBasedRepositoryConfiguration) { Objects.requireNonNull(fileBasedRepositoryConfiguration); this.repositoryRoot = getRepositoryRoot(fileBasedRepositoryConfiguration); this.fileSystem = this.repositoryRoot.getFileSystem(); this.provider = this.fileSystem.provider(); LOGGER.debug("Repository root: {}", this.repositoryRoot); }
public static void main(String[] args) throws Exception { // Initialize repository new Prefs(true); Server server = createHttpServer(); server.start(); IRepository repository = RepositoryFactory.getRepository(); if (repository instanceof FilebasedRepository) { LOGGER.debug("Using path " + ((FilebasedRepository) repository).getRepositoryRoot()); } else { LOGGER.debug("Repository is not filebased"); } // Waits until server is finished. // Will never happen, thus user has to press Ctrl+C. // See also https://stackoverflow.com/a/14981621/873282. server.join(); } }
System.out.println("Using repository path " + ((FilebasedRepository) repository).getRepositoryRoot() + "..."); } else { System.out.println("Using non-filebased repository");
/** * Reconfigures based on Environment */ public static void reconfigure() throws Exception { final Optional<JCloudsConfiguration> jCloudsConfiguration = Environment.getJCloudsConfiguration(); if (jCloudsConfiguration.isPresent()) { reconfigure(jCloudsConfiguration.get()); } else { final Optional<GitBasedRepositoryConfiguration> gitBasedRepositoryConfiguration = Environment.getGitBasedRepositoryConfiguration(); final FileBasedRepositoryConfiguration filebasedRepositoryConfiguration = Environment.getFilebasedRepositoryConfiguration().orElse(new FileBasedRepositoryConfiguration()); // Determine whether the filebased repository could be git repository. // We do not use JGit's capabilities, but do it just by checking for the existance of a ".git" directory. final Path repositoryRoot = FilebasedRepository.getRepositoryRoot(filebasedRepositoryConfiguration); final Path gitDirectory = repositoryRoot.resolve(".git"); boolean isGit = (Files.exists(gitDirectory) && Files.isDirectory(gitDirectory)); if (gitBasedRepositoryConfiguration.isPresent()) { reconfigure(gitBasedRepositoryConfiguration.get()); } else if (isGit) { reconfigure(new GitBasedRepositoryConfiguration(false, filebasedRepositoryConfiguration)); } else { reconfigure(filebasedRepositoryConfiguration); } } }