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 6383a49bee..a2fd5b30e2 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java @@ -69,15 +69,19 @@ public abstract class AbstractSimpleRepositoryHandler hgContextProvider, RepositoryLocationResolver repositoryLocationResolver) + public HgRepositoryHandler(ConfigurationStoreFactory storeFactory, + FileSystem fileSystem, + Provider hgContextProvider, + RepositoryLocationResolver repositoryLocationResolver, + InitialRepositoryLocationResolver initialRepositoryLocationResolver) { - super(storeFactory, fileSystem, repositoryLocationResolver); + super(storeFactory, fileSystem, repositoryLocationResolver, initialRepositoryLocationResolver); this.hgContextProvider = hgContextProvider; try diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java index c1b5dba705..4bf9e6ce77 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java @@ -60,7 +60,8 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { @Mock private com.google.inject.Provider provider; - RepositoryLocationResolver repositoryLocationResolver; + private RepositoryLocationResolver repositoryLocationResolver; + private InitialRepositoryLocationResolver initialRepositoryLocationResolver; @Override protected void checkDirectory(File directory) { @@ -73,11 +74,11 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { @Override protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory, File directory) { - DefaultFileSystem fileSystem = new DefaultFileSystem(); - repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(contextProvider, fileSystem)); + initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider); + repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver); HgRepositoryHandler handler = new HgRepositoryHandler(factory, new DefaultFileSystem(), - new HgContextProvider(), repositoryLocationResolver); + new HgContextProvider(), repositoryLocationResolver, initialRepositoryLocationResolver); handler.init(contextProvider); HgTestUtil.checkForSkip(handler); @@ -88,7 +89,7 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { @Test public void getDirectory() { HgRepositoryHandler repositoryHandler = new HgRepositoryHandler(factory, - new DefaultFileSystem(), provider, repositoryLocationResolver); + new DefaultFileSystem(), provider, repositoryLocationResolver, initialRepositoryLocationResolver); HgConfig hgConfig = new HgConfig(); hgConfig.setHgBinary("hg"); @@ -97,6 +98,6 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { initRepository(); File path = repositoryHandler.getDirectory(repository); - assertEquals(repoPath.toString() + File.separator + InitialRepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY, path.getAbsolutePath()); + assertEquals(repoPath.toString() + File.separator + RepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY, path.getAbsolutePath()); } } diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgTestUtil.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgTestUtil.java index 33c762e4f7..4933df527c 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgTestUtil.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgTestUtil.java @@ -105,10 +105,11 @@ public final class HgTestUtil FileSystem fileSystem = mock(FileSystem.class); PathBasedRepositoryDAO repoDao = mock(PathBasedRepositoryDAO.class); - RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(context,fileSystem)); + InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(context); + RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver); HgRepositoryHandler handler = new HgRepositoryHandler(new InMemoryConfigurationStoreFactory(), fileSystem, - new HgContextProvider(), repositoryLocationResolver); + new HgContextProvider(), repositoryLocationResolver, initialRepositoryLocationResolver); Path repoDir = directory.toPath(); when(repoDao.getPath(any())).thenReturn(repoDir); handler.init(context); diff --git a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java index 35fd59f715..07d777364c 100644 --- a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java +++ b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java @@ -86,10 +86,13 @@ public class SvnRepositoryHandler LoggerFactory.getLogger(SvnRepositoryHandler.class); @Inject - public SvnRepositoryHandler(ConfigurationStoreFactory storeFactory, FileSystem fileSystem, - HookEventFacade eventFacade, RepositoryLocationResolver repositoryLocationResolver) + public SvnRepositoryHandler(ConfigurationStoreFactory storeFactory, + FileSystem fileSystem, + HookEventFacade eventFacade, + RepositoryLocationResolver repositoryLocationResolver, + InitialRepositoryLocationResolver initialRepositoryLocationResolver) { - super(storeFactory, fileSystem, repositoryLocationResolver); + super(storeFactory, fileSystem, repositoryLocationResolver, initialRepositoryLocationResolver); // register logger SVNDebugLog.setDefaultLog(new SVNKitLogger()); diff --git a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java index 3ccbfea056..f8002c85d1 100644 --- a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java +++ b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java @@ -43,7 +43,6 @@ import sonia.scm.store.ConfigurationStore; import sonia.scm.store.ConfigurationStoreFactory; import java.io.File; -import java.nio.file.Path; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -73,7 +72,8 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { private HookEventFacade facade = new HookEventFacade(repositoryManagerProvider, hookContextFactory); - RepositoryLocationResolver repositoryLocationResolver ; + private RepositoryLocationResolver repositoryLocationResolver; + private InitialRepositoryLocationResolver initialRepositoryLocationResolver; @Override protected void checkDirectory(File directory) { @@ -91,10 +91,9 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { @Override protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory, File directory) { - DefaultFileSystem fileSystem = new DefaultFileSystem(); - repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(contextProvider,fileSystem)); - SvnRepositoryHandler handler = new SvnRepositoryHandler(factory, - new DefaultFileSystem(), null, repositoryLocationResolver); + initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider); + repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver); + SvnRepositoryHandler handler = new SvnRepositoryHandler(factory, new DefaultFileSystem(), null, repositoryLocationResolver, initialRepositoryLocationResolver); handler.init(contextProvider); @@ -110,13 +109,13 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { public void getDirectory() { when(factory.getStore(any(), any())).thenReturn(store); SvnRepositoryHandler repositoryHandler = new SvnRepositoryHandler(factory, - new DefaultFileSystem(), facade, repositoryLocationResolver); + new DefaultFileSystem(), facade, repositoryLocationResolver, initialRepositoryLocationResolver); SvnConfig svnConfig = new SvnConfig(); repositoryHandler.setConfig(svnConfig); initRepository(); File path = repositoryHandler.getDirectory(repository); - assertEquals(repoPath.toString()+File.separator+InitialRepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY, path.getAbsolutePath()); + assertEquals(repoPath.toString()+File.separator+ RepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY, path.getAbsolutePath()); } } diff --git a/scm-test/src/main/java/sonia/scm/repository/DummyRepositoryHandler.java b/scm-test/src/main/java/sonia/scm/repository/DummyRepositoryHandler.java index 07c6cd25ba..f1549f0aa3 100644 --- a/scm-test/src/main/java/sonia/scm/repository/DummyRepositoryHandler.java +++ b/scm-test/src/main/java/sonia/scm/repository/DummyRepositoryHandler.java @@ -59,8 +59,8 @@ public class DummyRepositoryHandler private final Set existingRepoNames = new HashSet<>(); - public DummyRepositoryHandler(ConfigurationStoreFactory storeFactory, RepositoryLocationResolver repositoryLocationResolver) { - super(storeFactory, new DefaultFileSystem(), repositoryLocationResolver); + public DummyRepositoryHandler(ConfigurationStoreFactory storeFactory, RepositoryLocationResolver repositoryLocationResolver, InitialRepositoryLocationResolver initialRepositoryLocationResolver) { + super(storeFactory, new DefaultFileSystem(), repositoryLocationResolver, initialRepositoryLocationResolver); } @Override diff --git a/scm-test/src/main/java/sonia/scm/repository/SimpleRepositoryHandlerTestBase.java b/scm-test/src/main/java/sonia/scm/repository/SimpleRepositoryHandlerTestBase.java index 55b4109bc7..1061d0f5c5 100644 --- a/scm-test/src/main/java/sonia/scm/repository/SimpleRepositoryHandlerTestBase.java +++ b/scm-test/src/main/java/sonia/scm/repository/SimpleRepositoryHandlerTestBase.java @@ -126,7 +126,7 @@ public abstract class SimpleRepositoryHandlerTestBase extends AbstractTestBase { File repoDirectory = new File(baseDirectory, repository.getId()); repoPath = repoDirectory.toPath(); when(repoDao.getPath(repository)).thenReturn(repoPath); - return new File(repoDirectory, InitialRepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY); + return new File(repoDirectory, RepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY); } protected File baseDirectory; diff --git a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java index 31758e5430..093c41f215 100644 --- a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerTest.java @@ -434,17 +434,17 @@ public class DefaultRepositoryManagerTest extends ManagerTestBase { DefaultFileSystem fileSystem = new DefaultFileSystem(); Set handlerSet = new HashSet<>(); ConfigurationStoreFactory factory = new JAXBConfigurationStoreFactory(contextProvider); - InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider, fileSystem); + InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider); XmlRepositoryDAO repositoryDAO = new XmlRepositoryDAO(factory, initialRepositoryLocationResolver, contextProvider); RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repositoryDAO, initialRepositoryLocationResolver); - handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver)); - handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver) { + handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver, initialRepositoryLocationResolver)); + handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver, initialRepositoryLocationResolver) { @Override public RepositoryType getType() { return new RepositoryType("hg", "Mercurial", Sets.newHashSet()); } }); - handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver) { + handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver, initialRepositoryLocationResolver) { @Override public RepositoryType getType() { return new RepositoryType("git", "Git", Sets.newHashSet());