diff --git a/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java b/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java index 42c8f22a0f..b13cc0e26b 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java @@ -168,7 +168,7 @@ public abstract class AbstractRepositoryHandler * @throws NotSupportedFeatureException */ @Override - public ImportHandler getImportHandler() throws NotSupportedFeatureException + public ImportHandler getImportHandler() { throw new NotSupportedFeatureException("import"); } diff --git a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java index b14c7dd3de..17e5d3e24f 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java @@ -76,7 +76,7 @@ public abstract class AbstractSimpleRepositoryHandler new InternalRepositoryException(repository, "path object for repository not found")); + RepositoryPath repositoryPath = findExistingRepositoryPath(repository.getId()).orElseThrow(() -> new InternalRepositoryException(repository, "path object for repository not found")); repositoryPath.setRepository(repository); repositoryPath.setToBeSynchronized(true); storeDB(); @@ -112,7 +109,7 @@ public class XmlRepositoryDAO @Override public void add(Repository repository) { - InitialRepositoryLocation initialLocation = initialRepositoryLocationResolver.getRelativeRepositoryPath(repository); + InitialRepositoryLocation initialLocation = initialRepositoryLocationResolver.getRelativeRepositoryPath(repository.getId()); try { fileSystem.create(initialLocation.getAbsolutePath()); } catch (IOException e) { @@ -153,7 +150,7 @@ public class XmlRepositoryDAO @Override public void delete(Repository repository) { - Path directory = getPath(repository); + Path directory = getPath(repository.getId()); super.delete(repository); try { fileSystem.destroy(directory.toFile()); @@ -173,19 +170,19 @@ public class XmlRepositoryDAO } @Override - public Path getPath(Repository repository) { + public Path getPath(String repositoryId) { return context .getBaseDirectory() .toPath() .resolve( - findExistingRepositoryPath(repository) + findExistingRepositoryPath(repositoryId) .map(RepositoryPath::getPath) - .orElseThrow(() -> new InternalRepositoryException(repository, "could not find base directory for repository"))); + .orElseThrow(() -> new InternalRepositoryException(ContextEntry.ContextBuilder.entity("repository", repositoryId), "could not find base directory for repository"))); } - private Optional findExistingRepositoryPath(Repository repository) { + private Optional findExistingRepositoryPath(String repositoryId) { return db.values().stream() - .filter(repoPath -> repoPath.getId().equals(repository.getId())) + .filter(repoPath -> repoPath.getId().equals(repositoryId)) .findAny(); } } diff --git a/scm-dao-xml/src/test/java/sonia/scm/repository/xml/XmlRepositoryDAOTest.java b/scm-dao-xml/src/test/java/sonia/scm/repository/xml/XmlRepositoryDAOTest.java index 25a4566ed1..145e7dfa8d 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/repository/xml/XmlRepositoryDAOTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/repository/xml/XmlRepositoryDAOTest.java @@ -89,7 +89,7 @@ public class XmlRepositoryDAOTest { XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), fileSystem, context); - Path path = dao.getPath(existingRepository); + Path path = dao.getPath(existingRepository.getId()); assertThat(path.toString()).isEqualTo(context.getBaseDirectory().getPath() + "/path"); } @@ -102,7 +102,7 @@ public class XmlRepositoryDAOTest { XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), fileSystem, context); - Path path = dao.getPath(existingRepository); + Path path = dao.getPath(existingRepository.getId()); assertThat(path.toString()).isEqualTo("/tmp/path"); } diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitGcTask.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitGcTask.java index 248eae92d1..9a30cc9f3e 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitGcTask.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitGcTask.java @@ -121,7 +121,7 @@ public class GitGcTask implements Runnable { } private void gc(Repository repository){ - File file = repositoryHandler.getDirectory(repository); + File file = repositoryHandler.getDirectory(repository.getId()); Git git = null; try { git = open(file); diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitIncomingOutgoingCommand.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitIncomingOutgoingCommand.java index 3cf72166ea..348203af92 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitIncomingOutgoingCommand.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitIncomingOutgoingCommand.java @@ -119,7 +119,7 @@ public abstract class AbstractGitIncomingOutgoingCommand Git git = Git.wrap(open()); - GitUtil.fetch(git, handler.getDirectory(remoteRepository), remoteRepository); + GitUtil.fetch(git, handler.getDirectory(remoteRepository.getId()), remoteRepository); ObjectId localId = getDefaultBranch(git.getRepository()); ObjectId remoteId = null; diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitPushOrPullCommand.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitPushOrPullCommand.java index e4e37d6fed..a9b9e25aca 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitPushOrPullCommand.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitPushOrPullCommand.java @@ -196,7 +196,7 @@ public abstract class AbstractGitPushOrPullCommand extends AbstractGitCommand */ protected String getRemoteUrl(sonia.scm.repository.Repository repository) { - return getRemoteUrl(handler.getDirectory(repository)); + return getRemoteUrl(handler.getDirectory(repository.getId())); } //~--- methods -------------------------------------------------------------- diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitPullCommand.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitPullCommand.java index 7a829355bf..8810c15c58 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitPullCommand.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitPullCommand.java @@ -196,12 +196,12 @@ public class GitPullCommand extends AbstractGitPushOrPullCommand private PullResponse pullFromScmRepository(Repository sourceRepository) throws IOException { - File sourceDirectory = handler.getDirectory(sourceRepository); + File sourceDirectory = handler.getDirectory(sourceRepository.getId()); Preconditions.checkArgument(sourceDirectory.exists(), "source repository directory does not exists"); - File targetDirectory = handler.getDirectory(repository); + File targetDirectory = handler.getDirectory(repository.getId()); Preconditions.checkArgument(sourceDirectory.exists(), "target repository directory does not exists"); diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitRepositoryServiceProvider.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitRepositoryServiceProvider.java index bda0d87b21..ae1af333bc 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitRepositoryServiceProvider.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitRepositoryServiceProvider.java @@ -73,7 +73,7 @@ public class GitRepositoryServiceProvider extends RepositoryServiceProvider public GitRepositoryServiceProvider(GitRepositoryHandler handler, Repository repository) { this.handler = handler; this.repository = repository; - this.context = new GitContext(handler.getDirectory(repository), repository); + this.context = new GitContext(handler.getDirectory(repository.getId()), repository); } //~--- methods -------------------------------------------------------------- diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitRepositoryResolver.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitRepositoryResolver.java index eb57ac8ff8..a2114a1b6a 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitRepositoryResolver.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitRepositoryResolver.java @@ -106,7 +106,7 @@ public class GitRepositoryResolver implements RepositoryResolver