From 3abbff23177a602eda12171ff0d4d5f8d338b7f0 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Fri, 15 Aug 2014 22:21:07 +0200 Subject: [PATCH] use jgit java7 support, to improve git performance --- scm-plugins/scm-git-plugin/pom.xml | 6 ++++ .../java/sonia/scm/repository/GitUtil.java | 6 ++-- .../repository/spi/AbstractGitCommand.java | 2 -- .../sonia/scm/repository/spi/GitContext.java | 12 ++----- .../sonia/scm/repository/GitUtilTest.java | 35 +++++++++++++++++++ 5 files changed, 46 insertions(+), 15 deletions(-) diff --git a/scm-plugins/scm-git-plugin/pom.xml b/scm-plugins/scm-git-plugin/pom.xml index b57e395d26..1ab92e7708 100644 --- a/scm-plugins/scm-git-plugin/pom.xml +++ b/scm-plugins/scm-git-plugin/pom.xml @@ -37,6 +37,12 @@ org.eclipse.jgit.http.server ${jgit.version} + + + sonia.jgit + org.eclipse.jgit.java7 + ${jgit.version} + commons-lang diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitUtil.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitUtil.java index 6fe3211ca8..114326834e 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitUtil.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitUtil.java @@ -198,8 +198,6 @@ public final class GitUtil * * @return * - * @throws GitAPIException - * * @throws RepositoryException */ public static FetchResult fetch(Git git, File directory, @@ -376,7 +374,7 @@ public final class GitUtil } } - catch (Exception ex) + catch (IOException ex) { logger.warn("error occured during resolve of branch id", ex); } @@ -582,7 +580,7 @@ public final class GitUtil String revision) throws IOException { - ObjectId revId = null; + ObjectId revId; if (Util.isNotEmpty(revision)) { diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitCommand.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitCommand.java index dc26777f65..9bf825c0e2 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitCommand.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitCommand.java @@ -51,10 +51,8 @@ public class AbstractGitCommand * Constructs ... * * - * * @param context * @param repository - * @param repositoryDirectory */ protected AbstractGitCommand(GitContext context, sonia.scm.repository.Repository repository) diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitContext.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitContext.java index b003395e5a..2175846d5a 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitContext.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitContext.java @@ -80,10 +80,7 @@ public class GitContext implements Closeable @Override public void close() { - if (logger.isTraceEnabled()) - { - logger.trace("close git repository {}", directory); - } + logger.trace("close git repository {}", directory); GitUtil.close(repository); repository = null; @@ -101,10 +98,7 @@ public class GitContext implements Closeable { if (repository == null) { - if (logger.isTraceEnabled()) - { - logger.trace("open git repository {}", directory); - } + logger.trace("open git repository {}", directory); repository = GitUtil.open(directory); } @@ -115,7 +109,7 @@ public class GitContext implements Closeable //~--- fields --------------------------------------------------------------- /** Field description */ - private File directory; + private final File directory; /** Field description */ private org.eclipse.jgit.lib.Repository repository; diff --git a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitUtilTest.java b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitUtilTest.java index 9eed5602f0..c34da3f738 100644 --- a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitUtilTest.java +++ b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitUtilTest.java @@ -30,11 +30,21 @@ */ + package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.errors.GitAPIException; + +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +import static org.hamcrest.Matchers.*; + +import static org.junit.Assert.*; import static org.mockito.Mockito.*; @@ -81,6 +91,25 @@ public class GitUtilTest GitUtil.checkBranchName(repo, GitUtil.REF_HEAD_PREFIX.concat("develop")); } + /** + * Method description + * + * + * @throws GitAPIException + * @throws IOException + */ + @Test + public void testOpenJava7() throws GitAPIException, IOException + { + File dir = temp.newFolder(); + + Git.init().setDirectory(dir).setBare(true).call(); + + org.eclipse.jgit.lib.Repository repo = GitUtil.open(dir); + + assertThat(repo.getFS().getClass().getName(), containsString("Java7")); + } + /** * Method description * @@ -98,4 +127,10 @@ public class GitUtilTest return repo; } + + //~--- fields --------------------------------------------------------------- + + /** Field description */ + @Rule + public TemporaryFolder temp = new TemporaryFolder(); }