SnapshotRepositoryBuilder.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package uk.ac.ic.wlgitbridge.writelatex;
  2. import org.eclipse.jgit.errors.RepositoryNotFoundException;
  3. import org.eclipse.jgit.lib.Repository;
  4. import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
  5. import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
  6. import uk.ac.ic.wlgitbridge.bridge.RepositorySource;
  7. import uk.ac.ic.wlgitbridge.bridge.WLBridgedProject;
  8. import uk.ac.ic.wlgitbridge.writelatex.api.SnapshotDBAPI;
  9. import uk.ac.ic.wlgitbridge.writelatex.api.request.exception.FailedConnectionException;
  10. import java.io.File;
  11. import java.io.IOException;
  12. /**
  13. * Created by Winston on 03/11/14.
  14. */
  15. public class SnapshotRepositoryBuilder implements RepositorySource {
  16. private final SnapshotDBAPI snapshotDBAPI;
  17. public SnapshotRepositoryBuilder(SnapshotDBAPI snapshotDBAPI) {
  18. this.snapshotDBAPI = snapshotDBAPI;
  19. }
  20. @Override
  21. public Repository getRepositoryWithNameAtRootDirectory(String name, File rootDirectory) throws RepositoryNotFoundException, ServiceNotEnabledException {
  22. File repositoryDirectory = new File(rootDirectory.getAbsolutePath(), name);
  23. Repository repository = null;
  24. try {
  25. repository = new FileRepositoryBuilder().setWorkTree(repositoryDirectory).build();
  26. new WLBridgedProject(repository, name, repositoryDirectory, snapshotDBAPI).buildRepository();
  27. } catch (FailedConnectionException e) {
  28. throw new ServiceNotEnabledException();
  29. } catch (IOException e) {
  30. throw new ServiceNotEnabledException();
  31. }
  32. return repository;
  33. }
  34. }