mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-03 03:55:51 +01:00
Cleanup usage of InitialRepositoryLocationResolver and RepositoryLocationResolver
This commit is contained in:
@@ -69,15 +69,19 @@ public abstract class AbstractSimpleRepositoryHandler<C extends RepositoryConfig
|
|||||||
private static final Logger logger =
|
private static final Logger logger =
|
||||||
LoggerFactory.getLogger(AbstractSimpleRepositoryHandler.class);
|
LoggerFactory.getLogger(AbstractSimpleRepositoryHandler.class);
|
||||||
|
|
||||||
private FileSystem fileSystem;
|
private final FileSystem fileSystem;
|
||||||
private final RepositoryLocationResolver repositoryLocationResolver;
|
private final RepositoryLocationResolver repositoryLocationResolver;
|
||||||
|
private final InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
||||||
|
|
||||||
|
|
||||||
public AbstractSimpleRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
public AbstractSimpleRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
||||||
FileSystem fileSystem, RepositoryLocationResolver repositoryLocationResolver) {
|
FileSystem fileSystem,
|
||||||
|
RepositoryLocationResolver repositoryLocationResolver,
|
||||||
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver) {
|
||||||
super(storeFactory);
|
super(storeFactory);
|
||||||
this.fileSystem = fileSystem;
|
this.fileSystem = fileSystem;
|
||||||
this.repositoryLocationResolver = repositoryLocationResolver;
|
this.repositoryLocationResolver = repositoryLocationResolver;
|
||||||
|
this.initialRepositoryLocationResolver = initialRepositoryLocationResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -159,7 +163,7 @@ public abstract class AbstractSimpleRepositoryHandler<C extends RepositoryConfig
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public File getInitialBaseDirectory() {
|
public File getInitialBaseDirectory() {
|
||||||
return repositoryLocationResolver.getInitialBaseDirectory();
|
return initialRepositoryLocationResolver.getBaseDirectory();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -22,30 +22,21 @@ import java.io.IOException;
|
|||||||
public class InitialRepositoryLocationResolver {
|
public class InitialRepositoryLocationResolver {
|
||||||
|
|
||||||
public static final String DEFAULT_REPOSITORY_PATH = "repositories";
|
public static final String DEFAULT_REPOSITORY_PATH = "repositories";
|
||||||
public static final String REPOSITORIES_NATIVE_DIRECTORY = "data";
|
|
||||||
private SCMContextProvider context;
|
|
||||||
private FileSystem fileSystem;
|
|
||||||
|
|
||||||
|
private final SCMContextProvider context;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public InitialRepositoryLocationResolver(SCMContextProvider context, FileSystem fileSystem) {
|
public InitialRepositoryLocationResolver(SCMContextProvider context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.fileSystem = fileSystem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public File getBaseDirectory() {
|
File getBaseDirectory() {
|
||||||
return new File(context.getBaseDirectory(), DEFAULT_REPOSITORY_PATH);
|
return new File(context.getBaseDirectory(), DEFAULT_REPOSITORY_PATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
public File createDirectory(Repository repository) {
|
File getDefaultDirectory(Repository repository) {
|
||||||
String initialRepoFolder = getRelativeRepositoryPath(repository);
|
String initialRepoFolder = getRelativeRepositoryPath(repository);
|
||||||
try {
|
return new File(context.getBaseDirectory(), initialRepoFolder);
|
||||||
File directory = new File(context.getBaseDirectory(), initialRepoFolder);
|
|
||||||
fileSystem.create(directory);
|
|
||||||
return directory;
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new InternalRepositoryException(repository, "Cannot create repository directory for " + repository.getNamespaceAndName(), e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRelativeRepositoryPath(Repository repository) {
|
public String getRelativeRepositoryPath(Repository repository) {
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ import groovy.lang.Singleton;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import static sonia.scm.repository.InitialRepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -24,6 +21,7 @@ import static sonia.scm.repository.InitialRepositoryLocationResolver.REPOSITORIE
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class RepositoryLocationResolver {
|
public class RepositoryLocationResolver {
|
||||||
|
|
||||||
|
private static final String REPOSITORIES_NATIVE_DIRECTORY = "data";
|
||||||
private RepositoryDAO repositoryDAO;
|
private RepositoryDAO repositoryDAO;
|
||||||
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
||||||
|
|
||||||
@@ -33,22 +31,12 @@ public class RepositoryLocationResolver {
|
|||||||
this.initialRepositoryLocationResolver = initialRepositoryLocationResolver;
|
this.initialRepositoryLocationResolver = initialRepositoryLocationResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current repository directory from the dao or create the initial directory if the repository does not exists
|
|
||||||
* @param repository
|
|
||||||
* @return the current repository directory from the dao or the initial directory if the repository does not exists
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
public File getRepositoryDirectory(Repository repository){
|
public File getRepositoryDirectory(Repository repository){
|
||||||
if (repositoryDAO instanceof PathBasedRepositoryDAO) {
|
if (repositoryDAO instanceof PathBasedRepositoryDAO) {
|
||||||
PathBasedRepositoryDAO pathBasedRepositoryDAO = (PathBasedRepositoryDAO) repositoryDAO;
|
PathBasedRepositoryDAO pathBasedRepositoryDAO = (PathBasedRepositoryDAO) repositoryDAO;
|
||||||
return pathBasedRepositoryDAO.getPath(repository).toFile();
|
return pathBasedRepositoryDAO.getPath(repository).toFile();
|
||||||
}
|
}
|
||||||
return initialRepositoryLocationResolver.createDirectory(repository);
|
return initialRepositoryLocationResolver.getDefaultDirectory(repository);
|
||||||
}
|
|
||||||
|
|
||||||
public File getInitialBaseDirectory() {
|
|
||||||
return initialRepositoryLocationResolver.getBaseDirectory();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public File getNativeDirectory(Repository repository) {
|
public File getNativeDirectory(Repository repository) {
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public final class RepositoryUtil {
|
|||||||
"repository path %s is not in the main repository path %s", path, basePath
|
"repository path %s is not in the main repository path %s", path, basePath
|
||||||
);
|
);
|
||||||
|
|
||||||
String id = IOUtil.trimSeperatorChars(path.substring(basePath.length()).replace(InitialRepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY, ""));
|
String id = IOUtil.trimSeperatorChars(path.substring(basePath.length()).replace(RepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY, ""));
|
||||||
|
|
||||||
Preconditions.checkArgument(
|
Preconditions.checkArgument(
|
||||||
!id.contains("\\") && !id.contains("/"),
|
!id.contains("\\") && !id.contains("/"),
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import org.junit.runner.RunWith;
|
|||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.junit.MockitoJUnitRunner;
|
import org.mockito.junit.MockitoJUnitRunner;
|
||||||
import sonia.scm.SCMContextProvider;
|
import sonia.scm.SCMContextProvider;
|
||||||
import sonia.scm.io.DefaultFileSystem;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -31,13 +30,12 @@ public class InitialRepositoryLocationResolverTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void x() {
|
public void shouldCreateInitialDirectory() {
|
||||||
InitialRepositoryLocationResolver resolver = new InitialRepositoryLocationResolver(context, new DefaultFileSystem());
|
InitialRepositoryLocationResolver resolver = new InitialRepositoryLocationResolver(context);
|
||||||
Repository repository = new Repository();
|
Repository repository = new Repository();
|
||||||
repository.setId("ABC");
|
repository.setId("ABC");
|
||||||
File directory = resolver.createDirectory(repository);
|
File directory = resolver.getDefaultDirectory(repository);
|
||||||
|
|
||||||
assertThat(directory).isEqualTo(new File(context.getBaseDirectory(), "repositories/ABC"));
|
assertThat(directory).isEqualTo(new File(context.getBaseDirectory(), "repositories/ABC"));
|
||||||
assertThat(context.getBaseDirectory().exists()).isTrue();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void addShouldCreateNewRepositoryPathWithRelativePath() {
|
public void addShouldCreateNewRepositoryPathWithRelativePath() {
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(context, null);
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(context);
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, initialRepositoryLocationResolver, context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, initialRepositoryLocationResolver, context);
|
||||||
|
|
||||||
dao.add(new Repository("id", null, null, null));
|
dao.add(new Repository("id", null, null, null));
|
||||||
@@ -67,7 +67,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
RepositoryPath repositoryPath = new RepositoryPath("/path", "id", oldRepository);
|
RepositoryPath repositoryPath = new RepositoryPath("/path", "id", oldRepository);
|
||||||
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
||||||
|
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context, null), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), context);
|
||||||
|
|
||||||
Repository newRepository = new Repository("id", "new", null, null);
|
Repository newRepository = new Repository("id", "new", null, null);
|
||||||
dao.modify(newRepository);
|
dao.modify(newRepository);
|
||||||
@@ -82,7 +82,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
RepositoryPath repositoryPath = new RepositoryPath("path", "id", existingRepository);
|
RepositoryPath repositoryPath = new RepositoryPath("path", "id", existingRepository);
|
||||||
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
||||||
|
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context, null), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), context);
|
||||||
|
|
||||||
Path path = dao.getPath(existingRepository);
|
Path path = dao.getPath(existingRepository);
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
RepositoryPath repositoryPath = new RepositoryPath("/tmp/path", "id", existingRepository);
|
RepositoryPath repositoryPath = new RepositoryPath("/tmp/path", "id", existingRepository);
|
||||||
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
||||||
|
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context, null), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), context);
|
||||||
|
|
||||||
Path path = dao.getPath(existingRepository);
|
Path path = dao.getPath(existingRepository);
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
public void shouldGetPathForNewRepository() {
|
public void shouldGetPathForNewRepository() {
|
||||||
when(db.getPaths()).thenReturn(emptyList());
|
when(db.getPaths()).thenReturn(emptyList());
|
||||||
|
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(context, null);
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(context);
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, initialRepositoryLocationResolver, context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, initialRepositoryLocationResolver, context);
|
||||||
|
|
||||||
Repository newRepository = new Repository("id", "new", null, null);
|
Repository newRepository = new Repository("id", "new", null, null);
|
||||||
|
|||||||
@@ -107,9 +107,14 @@ public class GitRepositoryHandler
|
|||||||
* @param repositoryLocationResolver
|
* @param repositoryLocationResolver
|
||||||
*/
|
*/
|
||||||
@Inject
|
@Inject
|
||||||
public GitRepositoryHandler(ConfigurationStoreFactory storeFactory, FileSystem fileSystem, Scheduler scheduler, RepositoryLocationResolver repositoryLocationResolver, GitWorkdirFactory workdirFactory)
|
public GitRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
||||||
|
FileSystem fileSystem,
|
||||||
|
Scheduler scheduler,
|
||||||
|
RepositoryLocationResolver repositoryLocationResolver,
|
||||||
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver,
|
||||||
|
GitWorkdirFactory workdirFactory)
|
||||||
{
|
{
|
||||||
super(storeFactory, fileSystem, repositoryLocationResolver);
|
super(storeFactory, fileSystem, repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
this.scheduler = scheduler;
|
this.scheduler = scheduler;
|
||||||
this.workdirFactory = workdirFactory;
|
this.workdirFactory = workdirFactory;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ public class GitRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
private GitWorkdirFactory gitWorkdirFactory;
|
private GitWorkdirFactory gitWorkdirFactory;
|
||||||
|
|
||||||
RepositoryLocationResolver repositoryLocationResolver;
|
RepositoryLocationResolver repositoryLocationResolver;
|
||||||
|
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -90,10 +91,10 @@ public class GitRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
File directory) {
|
File directory) {
|
||||||
DefaultFileSystem fileSystem = new DefaultFileSystem();
|
DefaultFileSystem fileSystem = new DefaultFileSystem();
|
||||||
|
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider, fileSystem);
|
initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider);
|
||||||
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver);
|
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver);
|
||||||
GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory,
|
GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory,
|
||||||
fileSystem, scheduler, repositoryLocationResolver, gitWorkdirFactory);
|
fileSystem, scheduler, repositoryLocationResolver, initialRepositoryLocationResolver, gitWorkdirFactory);
|
||||||
repositoryHandler.init(contextProvider);
|
repositoryHandler.init(contextProvider);
|
||||||
|
|
||||||
GitConfig config = new GitConfig();
|
GitConfig config = new GitConfig();
|
||||||
@@ -107,7 +108,7 @@ public class GitRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
@Test
|
@Test
|
||||||
public void getDirectory() {
|
public void getDirectory() {
|
||||||
GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory,
|
GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory,
|
||||||
new DefaultFileSystem(), scheduler, repositoryLocationResolver, gitWorkdirFactory);
|
new DefaultFileSystem(), scheduler, repositoryLocationResolver, initialRepositoryLocationResolver, gitWorkdirFactory);
|
||||||
GitConfig config = new GitConfig();
|
GitConfig config = new GitConfig();
|
||||||
config.setDisabled(false);
|
config.setDisabled(false);
|
||||||
config.setGcExpression("gc exp");
|
config.setGcExpression("gc exp");
|
||||||
@@ -116,6 +117,6 @@ public class GitRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
|
|
||||||
initRepository();
|
initRepository();
|
||||||
File path = repositoryHandler.getDirectory(repository);
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,19 +44,13 @@ import sonia.scm.ConfigurationException;
|
|||||||
import sonia.scm.SCMContextProvider;
|
import sonia.scm.SCMContextProvider;
|
||||||
import sonia.scm.installer.HgInstaller;
|
import sonia.scm.installer.HgInstaller;
|
||||||
import sonia.scm.installer.HgInstallerFactory;
|
import sonia.scm.installer.HgInstallerFactory;
|
||||||
import sonia.scm.io.DirectoryFileFilter;
|
|
||||||
import sonia.scm.io.ExtendedCommand;
|
import sonia.scm.io.ExtendedCommand;
|
||||||
import sonia.scm.io.FileSystem;
|
import sonia.scm.io.FileSystem;
|
||||||
import sonia.scm.io.INIConfiguration;
|
|
||||||
import sonia.scm.io.INIConfigurationReader;
|
|
||||||
import sonia.scm.io.INIConfigurationWriter;
|
|
||||||
import sonia.scm.io.INISection;
|
|
||||||
import sonia.scm.plugin.Extension;
|
import sonia.scm.plugin.Extension;
|
||||||
import sonia.scm.repository.spi.HgRepositoryServiceProvider;
|
import sonia.scm.repository.spi.HgRepositoryServiceProvider;
|
||||||
import sonia.scm.store.ConfigurationStoreFactory;
|
import sonia.scm.store.ConfigurationStoreFactory;
|
||||||
import sonia.scm.util.IOUtil;
|
import sonia.scm.util.IOUtil;
|
||||||
import sonia.scm.util.SystemUtil;
|
import sonia.scm.util.SystemUtil;
|
||||||
import sonia.scm.util.Util;
|
|
||||||
|
|
||||||
import javax.xml.bind.JAXBContext;
|
import javax.xml.bind.JAXBContext;
|
||||||
import javax.xml.bind.JAXBException;
|
import javax.xml.bind.JAXBException;
|
||||||
@@ -117,10 +111,13 @@ public class HgRepositoryHandler
|
|||||||
* @param repositoryLocationResolver
|
* @param repositoryLocationResolver
|
||||||
*/
|
*/
|
||||||
@Inject
|
@Inject
|
||||||
public HgRepositoryHandler(ConfigurationStoreFactory storeFactory, FileSystem fileSystem,
|
public HgRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
||||||
Provider<HgContext> hgContextProvider, RepositoryLocationResolver repositoryLocationResolver)
|
FileSystem fileSystem,
|
||||||
|
Provider<HgContext> hgContextProvider,
|
||||||
|
RepositoryLocationResolver repositoryLocationResolver,
|
||||||
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver)
|
||||||
{
|
{
|
||||||
super(storeFactory, fileSystem, repositoryLocationResolver);
|
super(storeFactory, fileSystem, repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
this.hgContextProvider = hgContextProvider;
|
this.hgContextProvider = hgContextProvider;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -60,7 +60,8 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
@Mock
|
@Mock
|
||||||
private com.google.inject.Provider<HgContext> provider;
|
private com.google.inject.Provider<HgContext> provider;
|
||||||
|
|
||||||
RepositoryLocationResolver repositoryLocationResolver;
|
private RepositoryLocationResolver repositoryLocationResolver;
|
||||||
|
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void checkDirectory(File directory) {
|
protected void checkDirectory(File directory) {
|
||||||
@@ -73,11 +74,11 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
@Override
|
@Override
|
||||||
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
||||||
File directory) {
|
File directory) {
|
||||||
DefaultFileSystem fileSystem = new DefaultFileSystem();
|
initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider);
|
||||||
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(contextProvider, fileSystem));
|
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver);
|
||||||
HgRepositoryHandler handler = new HgRepositoryHandler(factory,
|
HgRepositoryHandler handler = new HgRepositoryHandler(factory,
|
||||||
new DefaultFileSystem(),
|
new DefaultFileSystem(),
|
||||||
new HgContextProvider(), repositoryLocationResolver);
|
new HgContextProvider(), repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
|
|
||||||
handler.init(contextProvider);
|
handler.init(contextProvider);
|
||||||
HgTestUtil.checkForSkip(handler);
|
HgTestUtil.checkForSkip(handler);
|
||||||
@@ -88,7 +89,7 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
@Test
|
@Test
|
||||||
public void getDirectory() {
|
public void getDirectory() {
|
||||||
HgRepositoryHandler repositoryHandler = new HgRepositoryHandler(factory,
|
HgRepositoryHandler repositoryHandler = new HgRepositoryHandler(factory,
|
||||||
new DefaultFileSystem(), provider, repositoryLocationResolver);
|
new DefaultFileSystem(), provider, repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
|
|
||||||
HgConfig hgConfig = new HgConfig();
|
HgConfig hgConfig = new HgConfig();
|
||||||
hgConfig.setHgBinary("hg");
|
hgConfig.setHgBinary("hg");
|
||||||
@@ -97,6 +98,6 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
|
|
||||||
initRepository();
|
initRepository();
|
||||||
File path = repositoryHandler.getDirectory(repository);
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,10 +105,11 @@ public final class HgTestUtil
|
|||||||
FileSystem fileSystem = mock(FileSystem.class);
|
FileSystem fileSystem = mock(FileSystem.class);
|
||||||
PathBasedRepositoryDAO repoDao = mock(PathBasedRepositoryDAO.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 =
|
HgRepositoryHandler handler =
|
||||||
new HgRepositoryHandler(new InMemoryConfigurationStoreFactory(), fileSystem,
|
new HgRepositoryHandler(new InMemoryConfigurationStoreFactory(), fileSystem,
|
||||||
new HgContextProvider(), repositoryLocationResolver);
|
new HgContextProvider(), repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
Path repoDir = directory.toPath();
|
Path repoDir = directory.toPath();
|
||||||
when(repoDao.getPath(any())).thenReturn(repoDir);
|
when(repoDao.getPath(any())).thenReturn(repoDir);
|
||||||
handler.init(context);
|
handler.init(context);
|
||||||
|
|||||||
@@ -86,10 +86,13 @@ public class SvnRepositoryHandler
|
|||||||
LoggerFactory.getLogger(SvnRepositoryHandler.class);
|
LoggerFactory.getLogger(SvnRepositoryHandler.class);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SvnRepositoryHandler(ConfigurationStoreFactory storeFactory, FileSystem fileSystem,
|
public SvnRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
||||||
HookEventFacade eventFacade, RepositoryLocationResolver repositoryLocationResolver)
|
FileSystem fileSystem,
|
||||||
|
HookEventFacade eventFacade,
|
||||||
|
RepositoryLocationResolver repositoryLocationResolver,
|
||||||
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver)
|
||||||
{
|
{
|
||||||
super(storeFactory, fileSystem, repositoryLocationResolver);
|
super(storeFactory, fileSystem, repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
|
|
||||||
// register logger
|
// register logger
|
||||||
SVNDebugLog.setDefaultLog(new SVNKitLogger());
|
SVNDebugLog.setDefaultLog(new SVNKitLogger());
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ import sonia.scm.store.ConfigurationStore;
|
|||||||
import sonia.scm.store.ConfigurationStoreFactory;
|
import sonia.scm.store.ConfigurationStoreFactory;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Path;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
@@ -73,7 +72,8 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
|
|
||||||
private HookEventFacade facade = new HookEventFacade(repositoryManagerProvider, hookContextFactory);
|
private HookEventFacade facade = new HookEventFacade(repositoryManagerProvider, hookContextFactory);
|
||||||
|
|
||||||
RepositoryLocationResolver repositoryLocationResolver ;
|
private RepositoryLocationResolver repositoryLocationResolver;
|
||||||
|
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void checkDirectory(File directory) {
|
protected void checkDirectory(File directory) {
|
||||||
@@ -91,10 +91,9 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
@Override
|
@Override
|
||||||
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
||||||
File directory) {
|
File directory) {
|
||||||
DefaultFileSystem fileSystem = new DefaultFileSystem();
|
initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider);
|
||||||
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(contextProvider,fileSystem));
|
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver);
|
||||||
SvnRepositoryHandler handler = new SvnRepositoryHandler(factory,
|
SvnRepositoryHandler handler = new SvnRepositoryHandler(factory, new DefaultFileSystem(), null, repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
new DefaultFileSystem(), null, repositoryLocationResolver);
|
|
||||||
|
|
||||||
handler.init(contextProvider);
|
handler.init(contextProvider);
|
||||||
|
|
||||||
@@ -110,13 +109,13 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
public void getDirectory() {
|
public void getDirectory() {
|
||||||
when(factory.getStore(any(), any())).thenReturn(store);
|
when(factory.getStore(any(), any())).thenReturn(store);
|
||||||
SvnRepositoryHandler repositoryHandler = new SvnRepositoryHandler(factory,
|
SvnRepositoryHandler repositoryHandler = new SvnRepositoryHandler(factory,
|
||||||
new DefaultFileSystem(), facade, repositoryLocationResolver);
|
new DefaultFileSystem(), facade, repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
|
|
||||||
SvnConfig svnConfig = new SvnConfig();
|
SvnConfig svnConfig = new SvnConfig();
|
||||||
repositoryHandler.setConfig(svnConfig);
|
repositoryHandler.setConfig(svnConfig);
|
||||||
|
|
||||||
initRepository();
|
initRepository();
|
||||||
File path = repositoryHandler.getDirectory(repository);
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ public class DummyRepositoryHandler
|
|||||||
|
|
||||||
private final Set<String> existingRepoNames = new HashSet<>();
|
private final Set<String> existingRepoNames = new HashSet<>();
|
||||||
|
|
||||||
public DummyRepositoryHandler(ConfigurationStoreFactory storeFactory, RepositoryLocationResolver repositoryLocationResolver) {
|
public DummyRepositoryHandler(ConfigurationStoreFactory storeFactory, RepositoryLocationResolver repositoryLocationResolver, InitialRepositoryLocationResolver initialRepositoryLocationResolver) {
|
||||||
super(storeFactory, new DefaultFileSystem(), repositoryLocationResolver);
|
super(storeFactory, new DefaultFileSystem(), repositoryLocationResolver, initialRepositoryLocationResolver);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ public abstract class SimpleRepositoryHandlerTestBase extends AbstractTestBase {
|
|||||||
File repoDirectory = new File(baseDirectory, repository.getId());
|
File repoDirectory = new File(baseDirectory, repository.getId());
|
||||||
repoPath = repoDirectory.toPath();
|
repoPath = repoDirectory.toPath();
|
||||||
when(repoDao.getPath(repository)).thenReturn(repoPath);
|
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;
|
protected File baseDirectory;
|
||||||
|
|||||||
@@ -434,17 +434,17 @@ public class DefaultRepositoryManagerTest extends ManagerTestBase<Repository> {
|
|||||||
DefaultFileSystem fileSystem = new DefaultFileSystem();
|
DefaultFileSystem fileSystem = new DefaultFileSystem();
|
||||||
Set<RepositoryHandler> handlerSet = new HashSet<>();
|
Set<RepositoryHandler> handlerSet = new HashSet<>();
|
||||||
ConfigurationStoreFactory factory = new JAXBConfigurationStoreFactory(contextProvider);
|
ConfigurationStoreFactory factory = new JAXBConfigurationStoreFactory(contextProvider);
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider, fileSystem);
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider);
|
||||||
XmlRepositoryDAO repositoryDAO = new XmlRepositoryDAO(factory, initialRepositoryLocationResolver, contextProvider);
|
XmlRepositoryDAO repositoryDAO = new XmlRepositoryDAO(factory, initialRepositoryLocationResolver, contextProvider);
|
||||||
RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repositoryDAO, initialRepositoryLocationResolver);
|
RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repositoryDAO, initialRepositoryLocationResolver);
|
||||||
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver));
|
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver, initialRepositoryLocationResolver));
|
||||||
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver) {
|
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver, initialRepositoryLocationResolver) {
|
||||||
@Override
|
@Override
|
||||||
public RepositoryType getType() {
|
public RepositoryType getType() {
|
||||||
return new RepositoryType("hg", "Mercurial", Sets.newHashSet());
|
return new RepositoryType("hg", "Mercurial", Sets.newHashSet());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver) {
|
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver, initialRepositoryLocationResolver) {
|
||||||
@Override
|
@Override
|
||||||
public RepositoryType getType() {
|
public RepositoryType getType() {
|
||||||
return new RepositoryType("git", "Git", Sets.newHashSet());
|
return new RepositoryType("git", "Git", Sets.newHashSet());
|
||||||
|
|||||||
Reference in New Issue
Block a user