Refactor the repository store implementation in order to store repositories in specific paths.

This commit is contained in:
Mohamed Karray
2018-11-15 10:04:16 +01:00
parent 2cd2cfbde2
commit f8ae7cedf7
51 changed files with 628 additions and 594 deletions

View File

@@ -106,7 +106,7 @@ public class GitRepositoryResolver implements RepositoryResolver<HttpServletRequ
if (config.isValid())
{
File gitdir = findRepository(config.getRepositoryDirectory(), repo.getId());
File gitdir = handler.getDirectory(repo);
if (gitdir == null) {
throw new RepositoryNotFoundException(repositoryName);
}
@@ -132,32 +132,6 @@ public class GitRepositoryResolver implements RepositoryResolver<HttpServletRequ
}
}
@VisibleForTesting
File findRepository(File parentDirectory, String repositoryName) {
File repositoryDirectory = new File(parentDirectory, repositoryName);
if (repositoryDirectory.exists()) {
return repositoryDirectory;
}
if (endsWithDotGit(repositoryName)) {
String repositoryNameWithoutDotGit = repositoryNameWithoutDotGit(repositoryName);
repositoryDirectory = new File(parentDirectory, repositoryNameWithoutDotGit);
if (repositoryDirectory.exists()) {
return repositoryDirectory;
}
}
return null;
}
private boolean endsWithDotGit(String repositoryName) {
return repositoryName.endsWith(GitRepositoryHandler.DOT_GIT);
}
private String repositoryNameWithoutDotGit(String repositoryName) {
return repositoryName.substring(0, repositoryName.length() - GitRepositoryHandler.DOT_GIT.length());
}
//~--- fields ---------------------------------------------------------------
private final GitRepositoryHandler handler;