mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-12-21 07:49:55 +01:00
Let dao create repository base directory before native creation
This commit is contained in:
@@ -34,16 +34,12 @@ package sonia.scm.repository;
|
|||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
|
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
import com.google.common.base.Throwables;
|
|
||||||
import com.google.common.io.Resources;
|
import com.google.common.io.Resources;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import sonia.scm.AlreadyExistsException;
|
|
||||||
import sonia.scm.ConfigurationException;
|
import sonia.scm.ConfigurationException;
|
||||||
import sonia.scm.ContextEntry;
|
|
||||||
import sonia.scm.io.CommandResult;
|
import sonia.scm.io.CommandResult;
|
||||||
import sonia.scm.io.ExtendedCommand;
|
import sonia.scm.io.ExtendedCommand;
|
||||||
import sonia.scm.io.FileSystem;
|
|
||||||
import sonia.scm.store.ConfigurationStoreFactory;
|
import sonia.scm.store.ConfigurationStoreFactory;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -69,47 +65,25 @@ 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 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) {
|
||||||
RepositoryLocationResolver repositoryLocationResolver,
|
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver) {
|
|
||||||
super(storeFactory);
|
super(storeFactory);
|
||||||
this.fileSystem = fileSystem;
|
|
||||||
this.repositoryLocationResolver = repositoryLocationResolver;
|
this.repositoryLocationResolver = repositoryLocationResolver;
|
||||||
this.initialRepositoryLocationResolver = initialRepositoryLocationResolver;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Repository create(Repository repository) {
|
public Repository create(Repository repository) {
|
||||||
File repositoryRootDirectory = initialRepositoryLocationResolver.getDefaultDirectory(repository);
|
File repositoryRootDirectory = repositoryLocationResolver.getRepositoryDirectory(repository);
|
||||||
if (repositoryRootDirectory != null && repositoryRootDirectory.exists()) {
|
|
||||||
throw new AlreadyExistsException(repository);
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
fileSystem.create(repositoryRootDirectory);
|
|
||||||
File nativeDirectory = new File(repositoryRootDirectory, RepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY);
|
File nativeDirectory = new File(repositoryRootDirectory, RepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY);
|
||||||
|
try {
|
||||||
create(repository, nativeDirectory);
|
create(repository, nativeDirectory);
|
||||||
postCreate(repository, nativeDirectory);
|
postCreate(repository, nativeDirectory);
|
||||||
return repository;
|
|
||||||
} catch (Exception ex) {
|
|
||||||
if (repositoryRootDirectory != null && repositoryRootDirectory.exists()) {
|
|
||||||
logger.warn("delete repository directory {}, because of failed repository creation", repositoryRootDirectory);
|
|
||||||
try {
|
|
||||||
fileSystem.destroy(repositoryRootDirectory);
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error("Could not destroy directory: " + repositoryRootDirectory, e);
|
throw new InternalRepositoryException(repository, "could not create native repository directory", e);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Throwables.propagateIfPossible(ex, AlreadyExistsException.class);
|
|
||||||
// This point will never be reached
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
return repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -119,16 +93,6 @@ public abstract class AbstractSimpleRepositoryHandler<C extends RepositoryConfig
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void delete(Repository repository) {
|
public void delete(Repository repository) {
|
||||||
File directory = repositoryLocationResolver.getRepositoryDirectory(repository);
|
|
||||||
try {
|
|
||||||
if (directory.exists()) {
|
|
||||||
fileSystem.destroy(directory);
|
|
||||||
} else {
|
|
||||||
logger.warn("repository {} not found", repository.getNamespaceAndName());
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new InternalRepositoryException(ContextEntry.ContextBuilder.entity("directory", directory.toString()).in(repository), "could not delete repository directory", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -150,7 +114,7 @@ public abstract class AbstractSimpleRepositoryHandler<C extends RepositoryConfig
|
|||||||
public File getDirectory(Repository repository) {
|
public File getDirectory(Repository repository) {
|
||||||
File directory;
|
File directory;
|
||||||
if (isConfigured()) {
|
if (isConfigured()) {
|
||||||
directory = repositoryLocationResolver.getNativeDirectory(repository);
|
directory = new File(repositoryLocationResolver.getRepositoryDirectory(repository), RepositoryLocationResolver.REPOSITORIES_NATIVE_DIRECTORY);
|
||||||
} else {
|
} else {
|
||||||
throw new ConfigurationException("RepositoryHandler is not configured");
|
throw new ConfigurationException("RepositoryHandler is not configured");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
package sonia.scm.repository;
|
package sonia.scm.repository;
|
||||||
|
|
||||||
import sonia.scm.SCMContextProvider;
|
import sonia.scm.SCMContextProvider;
|
||||||
import sonia.scm.io.FileSystem;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Location Resolver for File based Repository Storage.
|
* A Location Resolver for File based Repository Storage.
|
||||||
@@ -30,7 +28,7 @@ public class InitialRepositoryLocationResolver {
|
|||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
File getDefaultDirectory(Repository repository) {
|
public File getDefaultDirectory(Repository repository) {
|
||||||
String initialRepoFolder = getRelativeRepositoryPath(repository);
|
String initialRepoFolder = getRelativeRepositoryPath(repository);
|
||||||
return new File(context.getBaseDirectory(), initialRepoFolder);
|
return new File(context.getBaseDirectory(), initialRepoFolder);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,8 +38,4 @@ public class RepositoryLocationResolver {
|
|||||||
}
|
}
|
||||||
return initialRepositoryLocationResolver.getDefaultDirectory(repository);
|
return initialRepositoryLocationResolver.getDefaultDirectory(repository);
|
||||||
}
|
}
|
||||||
|
|
||||||
File getNativeDirectory(Repository repository) {
|
|
||||||
return new File (getRepositoryDirectory(repository), REPOSITORIES_NATIVE_DIRECTORY);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ package sonia.scm.repository.xml;
|
|||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
import sonia.scm.SCMContextProvider;
|
import sonia.scm.SCMContextProvider;
|
||||||
|
import sonia.scm.io.FileSystem;
|
||||||
import sonia.scm.repository.InitialRepositoryLocationResolver;
|
import sonia.scm.repository.InitialRepositoryLocationResolver;
|
||||||
import sonia.scm.repository.InternalRepositoryException;
|
import sonia.scm.repository.InternalRepositoryException;
|
||||||
import sonia.scm.repository.NamespaceAndName;
|
import sonia.scm.repository.NamespaceAndName;
|
||||||
@@ -59,21 +60,24 @@ public class XmlRepositoryDAO
|
|||||||
implements PathBasedRepositoryDAO {
|
implements PathBasedRepositoryDAO {
|
||||||
|
|
||||||
public static final String STORE_NAME = "repositories";
|
public static final String STORE_NAME = "repositories";
|
||||||
|
|
||||||
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
||||||
|
private final FileSystem fileSystem;
|
||||||
private final SCMContextProvider context;
|
private final SCMContextProvider context;
|
||||||
|
|
||||||
//~--- constructors ---------------------------------------------------------
|
//~--- constructors ---------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs ...
|
* Constructs ...
|
||||||
*
|
|
||||||
* @param storeFactory
|
* @param storeFactory
|
||||||
|
* @param fileSystem
|
||||||
* @param context
|
* @param context
|
||||||
*/
|
*/
|
||||||
@Inject
|
@Inject
|
||||||
public XmlRepositoryDAO(ConfigurationStoreFactory storeFactory, InitialRepositoryLocationResolver initialRepositoryLocationResolver, SCMContextProvider context) {
|
public XmlRepositoryDAO(ConfigurationStoreFactory storeFactory, InitialRepositoryLocationResolver initialRepositoryLocationResolver, FileSystem fileSystem, SCMContextProvider context) {
|
||||||
super(storeFactory.getStore(XmlRepositoryDatabase.class, STORE_NAME));
|
super(storeFactory.getStore(XmlRepositoryDatabase.class, STORE_NAME));
|
||||||
this.initialRepositoryLocationResolver = initialRepositoryLocationResolver;
|
this.initialRepositoryLocationResolver = initialRepositoryLocationResolver;
|
||||||
|
this.fileSystem = fileSystem;
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,6 +108,12 @@ public class XmlRepositoryDAO
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(Repository repository) {
|
public void add(Repository repository) {
|
||||||
|
File repositoryRootDirectory = initialRepositoryLocationResolver.getDefaultDirectory(repository);
|
||||||
|
try {
|
||||||
|
fileSystem.create(repositoryRootDirectory);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new InternalRepositoryException(repository, "could not create directory for repository data: " + repositoryRootDirectory, e);
|
||||||
|
}
|
||||||
String relativeRepositoryPath = initialRepositoryLocationResolver.getRelativeRepositoryPath(repository);
|
String relativeRepositoryPath = initialRepositoryLocationResolver.getRelativeRepositoryPath(repository);
|
||||||
RepositoryPath repositoryPath = new RepositoryPath(relativeRepositoryPath, repository.getId(), repository.clone());
|
RepositoryPath repositoryPath = new RepositoryPath(relativeRepositoryPath, repository.getId(), repository.clone());
|
||||||
repositoryPath.setToBeSynchronized(true);
|
repositoryPath.setToBeSynchronized(true);
|
||||||
@@ -138,6 +148,17 @@ public class XmlRepositoryDAO
|
|||||||
return repository.clone();
|
return repository.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(Repository repository) {
|
||||||
|
Path directory = getPath(repository);
|
||||||
|
super.delete(repository);
|
||||||
|
try {
|
||||||
|
fileSystem.destroy(directory.toFile());
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new InternalRepositoryException(repository, "could not delete repository directory", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method description
|
* Method description
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ 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 sonia.scm.io.FileSystem;
|
||||||
import sonia.scm.repository.InitialRepositoryLocationResolver;
|
import sonia.scm.repository.InitialRepositoryLocationResolver;
|
||||||
import sonia.scm.repository.Repository;
|
import sonia.scm.repository.Repository;
|
||||||
import sonia.scm.store.ConfigurationStore;
|
import sonia.scm.store.ConfigurationStore;
|
||||||
@@ -18,7 +20,6 @@ import java.io.IOException;
|
|||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
import static java.util.Collections.emptyList;
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.codehaus.groovy.runtime.InvokerHelper.asList;
|
import static org.codehaus.groovy.runtime.InvokerHelper.asList;
|
||||||
import static org.mockito.ArgumentMatchers.argThat;
|
import static org.mockito.ArgumentMatchers.argThat;
|
||||||
@@ -41,6 +42,8 @@ public class XmlRepositoryDAOTest {
|
|||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
private final FileSystem fileSystem = new DefaultFileSystem();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void init() throws IOException {
|
public void init() throws IOException {
|
||||||
when(storeFactory.getStore(XmlRepositoryDatabase.class, STORE_NAME)).thenReturn(store);
|
when(storeFactory.getStore(XmlRepositoryDatabase.class, STORE_NAME)).thenReturn(store);
|
||||||
@@ -51,7 +54,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
@Test
|
@Test
|
||||||
public void addShouldCreateNewRepositoryPathWithRelativePath() {
|
public void addShouldCreateNewRepositoryPathWithRelativePath() {
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(context);
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(context);
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, initialRepositoryLocationResolver, context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, initialRepositoryLocationResolver, fileSystem, context);
|
||||||
|
|
||||||
dao.add(new Repository("id", null, null, null));
|
dao.add(new Repository("id", null, null, null));
|
||||||
|
|
||||||
@@ -69,7 +72,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), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), fileSystem, context);
|
||||||
|
|
||||||
Repository newRepository = new Repository("id", "new", null, null);
|
Repository newRepository = new Repository("id", "new", null, null);
|
||||||
dao.modify(newRepository);
|
dao.modify(newRepository);
|
||||||
@@ -84,7 +87,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), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), fileSystem, context);
|
||||||
|
|
||||||
Path path = dao.getPath(existingRepository);
|
Path path = dao.getPath(existingRepository);
|
||||||
|
|
||||||
@@ -97,7 +100,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), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), fileSystem, context);
|
||||||
|
|
||||||
Path path = dao.getPath(existingRepository);
|
Path path = dao.getPath(existingRepository);
|
||||||
|
|
||||||
@@ -111,7 +114,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
RepositoryPath repositoryPath = new RepositoryPath("relative/path", "id", existingRepository);
|
RepositoryPath repositoryPath = new RepositoryPath("relative/path", "id", existingRepository);
|
||||||
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
||||||
|
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), fileSystem, context);
|
||||||
|
|
||||||
String id = dao.getIdForDirectory(new File(context.getBaseDirectory(), "relative/path/data"));
|
String id = dao.getIdForDirectory(new File(context.getBaseDirectory(), "relative/path/data"));
|
||||||
|
|
||||||
@@ -125,7 +128,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
RepositoryPath repositoryPath = new RepositoryPath(folder.getParent(), "id", existingRepository);
|
RepositoryPath repositoryPath = new RepositoryPath(folder.getParent(), "id", existingRepository);
|
||||||
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
||||||
|
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), fileSystem, context);
|
||||||
|
|
||||||
String id = dao.getIdForDirectory(folder);
|
String id = dao.getIdForDirectory(folder);
|
||||||
|
|
||||||
@@ -141,7 +144,7 @@ public class XmlRepositoryDAOTest {
|
|||||||
RepositoryPath repositoryPath = new RepositoryPath(new File(link, "data").getPath(), "id", existingRepository);
|
RepositoryPath repositoryPath = new RepositoryPath(new File(link, "data").getPath(), "id", existingRepository);
|
||||||
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
when(db.getPaths()).thenReturn(asList(repositoryPath));
|
||||||
|
|
||||||
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), context);
|
XmlRepositoryDAO dao = new XmlRepositoryDAO(storeFactory, new InitialRepositoryLocationResolver(context), fileSystem, context);
|
||||||
|
|
||||||
String id = dao.getIdForDirectory(folder);
|
String id = dao.getIdForDirectory(folder);
|
||||||
|
|
||||||
|
|||||||
@@ -97,24 +97,13 @@ public class GitRepositoryHandler
|
|||||||
|
|
||||||
//~--- constructors ---------------------------------------------------------
|
//~--- constructors ---------------------------------------------------------
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs ...
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @param storeFactory
|
|
||||||
* @param fileSystem
|
|
||||||
* @param scheduler
|
|
||||||
* @param repositoryLocationResolver
|
|
||||||
*/
|
|
||||||
@Inject
|
@Inject
|
||||||
public GitRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
public GitRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
||||||
FileSystem fileSystem,
|
|
||||||
Scheduler scheduler,
|
Scheduler scheduler,
|
||||||
RepositoryLocationResolver repositoryLocationResolver,
|
RepositoryLocationResolver repositoryLocationResolver,
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver,
|
|
||||||
GitWorkdirFactory workdirFactory)
|
GitWorkdirFactory workdirFactory)
|
||||||
{
|
{
|
||||||
super(storeFactory, fileSystem, repositoryLocationResolver, initialRepositoryLocationResolver);
|
super(storeFactory, repositoryLocationResolver);
|
||||||
this.scheduler = scheduler;
|
this.scheduler = scheduler;
|
||||||
this.workdirFactory = workdirFactory;
|
this.workdirFactory = workdirFactory;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,6 @@ public class GitRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
private GitWorkdirFactory gitWorkdirFactory;
|
private GitWorkdirFactory gitWorkdirFactory;
|
||||||
|
|
||||||
RepositoryLocationResolver repositoryLocationResolver;
|
RepositoryLocationResolver repositoryLocationResolver;
|
||||||
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -89,12 +88,9 @@ public class GitRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
@Override
|
@Override
|
||||||
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
||||||
File directory) {
|
File directory) {
|
||||||
DefaultFileSystem fileSystem = new DefaultFileSystem();
|
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(contextProvider));
|
||||||
|
|
||||||
initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider);
|
|
||||||
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver);
|
|
||||||
GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory,
|
GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory,
|
||||||
fileSystem, scheduler, repositoryLocationResolver, initialRepositoryLocationResolver, gitWorkdirFactory);
|
scheduler, repositoryLocationResolver, gitWorkdirFactory);
|
||||||
repositoryHandler.init(contextProvider);
|
repositoryHandler.init(contextProvider);
|
||||||
|
|
||||||
GitConfig config = new GitConfig();
|
GitConfig config = new GitConfig();
|
||||||
@@ -108,7 +104,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, initialRepositoryLocationResolver, gitWorkdirFactory);
|
scheduler, repositoryLocationResolver, gitWorkdirFactory);
|
||||||
GitConfig config = new GitConfig();
|
GitConfig config = new GitConfig();
|
||||||
config.setDisabled(false);
|
config.setDisabled(false);
|
||||||
config.setGcExpression("gc exp");
|
config.setGcExpression("gc exp");
|
||||||
|
|||||||
@@ -45,7 +45,6 @@ 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.ExtendedCommand;
|
import sonia.scm.io.ExtendedCommand;
|
||||||
import sonia.scm.io.FileSystem;
|
|
||||||
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;
|
||||||
@@ -102,22 +101,12 @@ public class HgRepositoryHandler
|
|||||||
|
|
||||||
//~--- constructors ---------------------------------------------------------
|
//~--- constructors ---------------------------------------------------------
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs ...
|
|
||||||
*
|
|
||||||
* @param storeFactory
|
|
||||||
* @param fileSystem
|
|
||||||
* @param hgContextProvider
|
|
||||||
* @param repositoryLocationResolver
|
|
||||||
*/
|
|
||||||
@Inject
|
@Inject
|
||||||
public HgRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
public HgRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
||||||
FileSystem fileSystem,
|
|
||||||
Provider<HgContext> hgContextProvider,
|
Provider<HgContext> hgContextProvider,
|
||||||
RepositoryLocationResolver repositoryLocationResolver,
|
RepositoryLocationResolver repositoryLocationResolver)
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver)
|
|
||||||
{
|
{
|
||||||
super(storeFactory, fileSystem, repositoryLocationResolver, initialRepositoryLocationResolver);
|
super(storeFactory, repositoryLocationResolver);
|
||||||
this.hgContextProvider = hgContextProvider;
|
this.hgContextProvider = hgContextProvider;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
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.io.DefaultFileSystem;
|
|
||||||
import sonia.scm.store.ConfigurationStoreFactory;
|
import sonia.scm.store.ConfigurationStoreFactory;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -61,7 +60,6 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
private com.google.inject.Provider<HgContext> provider;
|
private com.google.inject.Provider<HgContext> provider;
|
||||||
|
|
||||||
private RepositoryLocationResolver repositoryLocationResolver;
|
private RepositoryLocationResolver repositoryLocationResolver;
|
||||||
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void checkDirectory(File directory) {
|
protected void checkDirectory(File directory) {
|
||||||
@@ -74,11 +72,9 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
@Override
|
@Override
|
||||||
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
||||||
File directory) {
|
File directory) {
|
||||||
initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider);
|
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(contextProvider));
|
||||||
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver);
|
|
||||||
HgRepositoryHandler handler = new HgRepositoryHandler(factory,
|
HgRepositoryHandler handler = new HgRepositoryHandler(factory,
|
||||||
new DefaultFileSystem(),
|
new HgContextProvider(), repositoryLocationResolver);
|
||||||
new HgContextProvider(), repositoryLocationResolver, initialRepositoryLocationResolver);
|
|
||||||
|
|
||||||
handler.init(contextProvider);
|
handler.init(contextProvider);
|
||||||
HgTestUtil.checkForSkip(handler);
|
HgTestUtil.checkForSkip(handler);
|
||||||
@@ -89,7 +85,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, initialRepositoryLocationResolver);
|
provider, repositoryLocationResolver);
|
||||||
|
|
||||||
HgConfig hgConfig = new HgConfig();
|
HgConfig hgConfig = new HgConfig();
|
||||||
hgConfig.setHgBinary("hg");
|
hgConfig.setHgBinary("hg");
|
||||||
|
|||||||
@@ -36,19 +36,18 @@ package sonia.scm.repository;
|
|||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
|
|
||||||
import org.junit.Assume;
|
import org.junit.Assume;
|
||||||
|
|
||||||
import sonia.scm.SCMContext;
|
import sonia.scm.SCMContext;
|
||||||
import sonia.scm.io.FileSystem;
|
|
||||||
import sonia.scm.store.InMemoryConfigurationStoreFactory;
|
import sonia.scm.store.InMemoryConfigurationStoreFactory;
|
||||||
|
|
||||||
import static org.mockito.Mockito.*;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
//~--- JDK imports ------------------------------------------------------------
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import static org.mockito.Mockito.any;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
//~--- JDK imports ------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -102,14 +101,11 @@ public final class HgTestUtil
|
|||||||
|
|
||||||
context.setBaseDirectory(directory);
|
context.setBaseDirectory(directory);
|
||||||
|
|
||||||
FileSystem fileSystem = mock(FileSystem.class);
|
|
||||||
PathBasedRepositoryDAO repoDao = mock(PathBasedRepositoryDAO.class);
|
PathBasedRepositoryDAO repoDao = mock(PathBasedRepositoryDAO.class);
|
||||||
|
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(context);
|
RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(context));
|
||||||
RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver);
|
|
||||||
HgRepositoryHandler handler =
|
HgRepositoryHandler handler =
|
||||||
new HgRepositoryHandler(new InMemoryConfigurationStoreFactory(), fileSystem,
|
new HgRepositoryHandler(new InMemoryConfigurationStoreFactory(), 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);
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ import org.tmatesoft.svn.core.internal.io.fs.FSRepositoryFactory;
|
|||||||
import org.tmatesoft.svn.core.io.SVNRepository;
|
import org.tmatesoft.svn.core.io.SVNRepository;
|
||||||
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
|
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
|
||||||
import org.tmatesoft.svn.util.SVNDebugLog;
|
import org.tmatesoft.svn.util.SVNDebugLog;
|
||||||
import sonia.scm.io.FileSystem;
|
|
||||||
import sonia.scm.logging.SVNKitLogger;
|
import sonia.scm.logging.SVNKitLogger;
|
||||||
import sonia.scm.plugin.Extension;
|
import sonia.scm.plugin.Extension;
|
||||||
import sonia.scm.repository.spi.HookEventFacade;
|
import sonia.scm.repository.spi.HookEventFacade;
|
||||||
@@ -87,13 +86,11 @@ public class SvnRepositoryHandler
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SvnRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
public SvnRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
||||||
FileSystem fileSystem,
|
|
||||||
HookEventFacade eventFacade,
|
HookEventFacade eventFacade,
|
||||||
RepositoryLocationResolver repositoryLocationResolver,
|
RepositoryLocationResolver repositoryLocationResolver,
|
||||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver,
|
|
||||||
RepositoryDAO repositoryDAO)
|
RepositoryDAO repositoryDAO)
|
||||||
{
|
{
|
||||||
super(storeFactory, fileSystem, repositoryLocationResolver, initialRepositoryLocationResolver);
|
super(storeFactory, repositoryLocationResolver);
|
||||||
|
|
||||||
// register logger
|
// register logger
|
||||||
SVNDebugLog.setDefaultLog(new SVNKitLogger());
|
SVNDebugLog.setDefaultLog(new SVNKitLogger());
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
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.io.DefaultFileSystem;
|
|
||||||
import sonia.scm.repository.api.HookContextFactory;
|
import sonia.scm.repository.api.HookContextFactory;
|
||||||
import sonia.scm.repository.spi.HookEventFacade;
|
import sonia.scm.repository.spi.HookEventFacade;
|
||||||
import sonia.scm.store.ConfigurationStore;
|
import sonia.scm.store.ConfigurationStore;
|
||||||
@@ -76,7 +75,6 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
private HookEventFacade facade = new HookEventFacade(repositoryManagerProvider, hookContextFactory);
|
private HookEventFacade facade = new HookEventFacade(repositoryManagerProvider, hookContextFactory);
|
||||||
|
|
||||||
private RepositoryLocationResolver repositoryLocationResolver;
|
private RepositoryLocationResolver repositoryLocationResolver;
|
||||||
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void checkDirectory(File directory) {
|
protected void checkDirectory(File directory) {
|
||||||
@@ -94,9 +92,8 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase {
|
|||||||
@Override
|
@Override
|
||||||
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
protected RepositoryHandler createRepositoryHandler(ConfigurationStoreFactory factory,
|
||||||
File directory) {
|
File directory) {
|
||||||
initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider);
|
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, new InitialRepositoryLocationResolver(contextProvider));
|
||||||
repositoryLocationResolver = new RepositoryLocationResolver(repoDao, initialRepositoryLocationResolver);
|
SvnRepositoryHandler handler = new SvnRepositoryHandler(factory, null, repositoryLocationResolver, repositoryDAO);
|
||||||
SvnRepositoryHandler handler = new SvnRepositoryHandler(factory, new DefaultFileSystem(), null, repositoryLocationResolver, initialRepositoryLocationResolver, repositoryDAO);
|
|
||||||
|
|
||||||
handler.init(contextProvider);
|
handler.init(contextProvider);
|
||||||
|
|
||||||
@@ -112,7 +109,7 @@ 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, initialRepositoryLocationResolver, repositoryDAO);
|
facade, repositoryLocationResolver, repositoryDAO);
|
||||||
|
|
||||||
SvnConfig svnConfig = new SvnConfig();
|
SvnConfig svnConfig = new SvnConfig();
|
||||||
repositoryHandler.setConfig(svnConfig);
|
repositoryHandler.setConfig(svnConfig);
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ package sonia.scm.repository;
|
|||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import sonia.scm.AlreadyExistsException;
|
import sonia.scm.AlreadyExistsException;
|
||||||
import sonia.scm.io.DefaultFileSystem;
|
|
||||||
import sonia.scm.store.ConfigurationStoreFactory;
|
import sonia.scm.store.ConfigurationStoreFactory;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
@@ -59,8 +58,8 @@ public class DummyRepositoryHandler
|
|||||||
|
|
||||||
private final Set<String> existingRepoNames = new HashSet<>();
|
private final Set<String> existingRepoNames = new HashSet<>();
|
||||||
|
|
||||||
public DummyRepositoryHandler(ConfigurationStoreFactory storeFactory, RepositoryLocationResolver repositoryLocationResolver, InitialRepositoryLocationResolver initialRepositoryLocationResolver) {
|
public DummyRepositoryHandler(ConfigurationStoreFactory storeFactory, RepositoryLocationResolver repositoryLocationResolver) {
|
||||||
super(storeFactory, new DefaultFileSystem(), repositoryLocationResolver, initialRepositoryLocationResolver);
|
super(storeFactory, repositoryLocationResolver);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
@@ -82,17 +81,6 @@ public abstract class SimpleRepositoryHandlerTestBase extends AbstractTestBase {
|
|||||||
assertTrue(path.contains(repository.getId()));
|
assertTrue(path.contains(repository.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testDelete() {
|
|
||||||
createRepository();
|
|
||||||
|
|
||||||
handler.delete(repository);
|
|
||||||
|
|
||||||
File directory = new File(baseDirectory, repository.getId());
|
|
||||||
|
|
||||||
assertFalse(directory.exists());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void postSetUp() throws IOException, RepositoryPathNotFoundException {
|
protected void postSetUp() throws IOException, RepositoryPathNotFoundException {
|
||||||
InMemoryConfigurationStoreFactory storeFactory = new InMemoryConfigurationStoreFactory();
|
InMemoryConfigurationStoreFactory storeFactory = new InMemoryConfigurationStoreFactory();
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ import com.google.inject.Singleton;
|
|||||||
import org.apache.shiro.concurrent.SubjectAwareExecutorService;
|
import org.apache.shiro.concurrent.SubjectAwareExecutorService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import sonia.scm.AlreadyExistsException;
|
|
||||||
import sonia.scm.ConfigurationException;
|
import sonia.scm.ConfigurationException;
|
||||||
import sonia.scm.HandlerEventType;
|
import sonia.scm.HandlerEventType;
|
||||||
import sonia.scm.ManagerDaoAdapter;
|
import sonia.scm.ManagerDaoAdapter;
|
||||||
@@ -138,17 +137,18 @@ public class DefaultRepositoryManager extends AbstractRepositoryManager {
|
|||||||
return managerDaoAdapter.create(
|
return managerDaoAdapter.create(
|
||||||
repository,
|
repository,
|
||||||
RepositoryPermissions::create,
|
RepositoryPermissions::create,
|
||||||
|
newRepository -> fireEvent(HandlerEventType.BEFORE_CREATE, newRepository),
|
||||||
newRepository -> {
|
newRepository -> {
|
||||||
|
fireEvent(HandlerEventType.CREATE, newRepository);
|
||||||
if (initRepository) {
|
if (initRepository) {
|
||||||
try {
|
try {
|
||||||
getHandler(newRepository).create(newRepository);
|
getHandler(newRepository).create(newRepository);
|
||||||
} catch (AlreadyExistsException e) {
|
} catch (InternalRepositoryException e) {
|
||||||
throw new InternalRepositoryException(repository, "directory for repository does already exist", e);
|
delete(repository);
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fireEvent(HandlerEventType.BEFORE_CREATE, newRepository);
|
|
||||||
},
|
},
|
||||||
newRepository -> fireEvent(HandlerEventType.CREATE, newRepository),
|
|
||||||
newRepository -> repositoryDAO.contains(newRepository.getNamespaceAndName())
|
newRepository -> repositoryDAO.contains(newRepository.getNamespaceAndName())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -435,16 +435,16 @@ public class DefaultRepositoryManagerTest extends ManagerTestBase<Repository> {
|
|||||||
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);
|
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver(contextProvider);
|
||||||
XmlRepositoryDAO repositoryDAO = new XmlRepositoryDAO(factory, initialRepositoryLocationResolver, contextProvider);
|
XmlRepositoryDAO repositoryDAO = new XmlRepositoryDAO(factory, initialRepositoryLocationResolver, fileSystem, contextProvider);
|
||||||
RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repositoryDAO, initialRepositoryLocationResolver);
|
RepositoryLocationResolver repositoryLocationResolver = new RepositoryLocationResolver(repositoryDAO, initialRepositoryLocationResolver);
|
||||||
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver, initialRepositoryLocationResolver));
|
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver));
|
||||||
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver, initialRepositoryLocationResolver) {
|
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver) {
|
||||||
@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, initialRepositoryLocationResolver) {
|
handlerSet.add(new DummyRepositoryHandler(factory, repositoryLocationResolver) {
|
||||||
@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