Example usage for org.eclipse.jgit.lib Repository close

List of usage examples for org.eclipse.jgit.lib Repository close

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib Repository close.

Prototype

@Override
public void close() 

Source Link

Document

Decrement the use count, and maybe close resources.

Usage

From source file:com.gitblit.tests.IssuesTest.java

License:Apache License

@Test
public void testLifecycle() throws Exception {
    Repository repository = GitBlitSuite.getIssuesTestRepository();
    String name = FileUtils.getRelativePath(GitBlitSuite.REPOSITORIES, repository.getDirectory());

    // create and insert an issue
    Change c1 = newChange("testCreation() " + Long.toHexString(System.currentTimeMillis()));
    IssueModel issue = IssueUtils.createIssue(repository, c1);
    assertNotNull(issue.id);// ww w  .  ja  v  a 2  s  . c o  m

    // retrieve issue and compare
    IssueModel constructed = IssueUtils.getIssue(repository, issue.id);
    compare(issue, constructed);

    assertEquals(1, constructed.changes.size());

    // C1: create the issue
    c1 = newChange("testUpdates() " + Long.toHexString(System.currentTimeMillis()));
    issue = IssueUtils.createIssue(repository, c1);
    assertNotNull(issue.id);

    constructed = IssueUtils.getIssue(repository, issue.id);
    compare(issue, constructed);
    assertEquals(1, constructed.changes.size());

    // C2: set owner
    Change c2 = new Change("C2");
    c2.comment("I'll fix this");
    c2.setField(Field.Owner, c2.author);
    assertTrue(IssueUtils.updateIssue(repository, issue.id, c2));
    constructed = IssueUtils.getIssue(repository, issue.id);
    assertEquals(2, constructed.changes.size());
    assertEquals(c2.author, constructed.owner);

    // C3: add a note
    Change c3 = new Change("C3");
    c3.comment("yeah, this is working");
    assertTrue(IssueUtils.updateIssue(repository, issue.id, c3));
    constructed = IssueUtils.getIssue(repository, issue.id);
    assertEquals(3, constructed.changes.size());

    // C4: add attachment
    Change c4 = new Change("C4");
    Attachment a = newAttachment();
    c4.addAttachment(a);
    assertTrue(IssueUtils.updateIssue(repository, issue.id, c4));

    Attachment a1 = IssueUtils.getIssueAttachment(repository, issue.id, a.name);
    assertEquals(a.content.length, a1.content.length);
    assertTrue(Arrays.areEqual(a.content, a1.content));

    // C5: close the issue
    Change c5 = new Change("C5");
    c5.comment("closing issue");
    c5.setField(Field.Status, Status.Fixed);
    assertTrue(IssueUtils.updateIssue(repository, issue.id, c5));

    // retrieve issue again
    constructed = IssueUtils.getIssue(repository, issue.id);

    assertEquals(5, constructed.changes.size());
    assertTrue(constructed.status.isClosed());

    List<IssueModel> allIssues = IssueUtils.getIssues(repository, null);
    List<IssueModel> openIssues = IssueUtils.getIssues(repository, new IssueFilter() {
        @Override
        public boolean accept(IssueModel issue) {
            return !issue.status.isClosed();
        }
    });
    List<IssueModel> closedIssues = IssueUtils.getIssues(repository, new IssueFilter() {
        @Override
        public boolean accept(IssueModel issue) {
            return issue.status.isClosed();
        }
    });

    assertTrue(allIssues.size() > 0);
    assertEquals(1, openIssues.size());
    assertEquals(1, closedIssues.size());

    // build a new Lucene index
    LuceneExecutor lucene = new LuceneExecutor(null, GitBlitSuite.REPOSITORIES);
    lucene.deleteIndex(name);
    for (IssueModel anIssue : allIssues) {
        lucene.index(name, anIssue);
    }
    List<SearchResult> hits = lucene.search("working", 1, 10, name);
    assertTrue(hits.size() == 1);

    // reindex an issue
    issue = allIssues.get(0);
    Change change = new Change("reindex");
    change.comment("this is a test of reindexing an issue");
    IssueUtils.updateIssue(repository, issue.id, change);
    issue = IssueUtils.getIssue(repository, issue.id);
    lucene.index(name, issue);

    hits = lucene.search("working", 1, 10, name);
    assertTrue(hits.size() == 1);

    // delete all issues
    for (IssueModel anIssue : allIssues) {
        assertTrue(IssueUtils.deleteIssue(repository, anIssue.id, "D"));
    }

    lucene.close();
    repository.close();
}

From source file:com.gitblit.tests.IssuesTest.java

License:Apache License

@Test
public void testChangeComment() throws Exception {
    Repository repository = GitBlitSuite.getIssuesTestRepository();
    // C1: create the issue
    Change c1 = newChange("testChangeComment() " + Long.toHexString(System.currentTimeMillis()));
    IssueModel issue = IssueUtils.createIssue(repository, c1);
    assertNotNull(issue.id);/* w w w. j a va2s.com*/
    assertTrue(issue.changes.get(0).hasComment());

    assertTrue(IssueUtils.changeComment(repository, issue, c1, "E1", "I changed the comment"));
    issue = IssueUtils.getIssue(repository, issue.id);
    assertTrue(issue.changes.get(0).hasComment());
    assertEquals("I changed the comment", issue.changes.get(0).comment.text);

    assertTrue(IssueUtils.deleteIssue(repository, issue.id, "D"));

    repository.close();
}

From source file:com.gitblit.tests.IssuesTest.java

License:Apache License

@Test
public void testDeleteComment() throws Exception {
    Repository repository = GitBlitSuite.getIssuesTestRepository();
    // C1: create the issue
    Change c1 = newChange("testDeleteComment() " + Long.toHexString(System.currentTimeMillis()));
    IssueModel issue = IssueUtils.createIssue(repository, c1);
    assertNotNull(issue.id);//from  w  w  w  . j  a v  a 2  s  . com
    assertTrue(issue.changes.get(0).hasComment());

    assertTrue(IssueUtils.deleteComment(repository, issue, c1, "D1"));
    issue = IssueUtils.getIssue(repository, issue.id);
    assertEquals(1, issue.changes.size());
    assertFalse(issue.changes.get(0).hasComment());

    issue = IssueUtils.getIssue(repository, issue.id, false);
    assertEquals(2, issue.changes.size());
    assertTrue(issue.changes.get(0).hasComment());
    assertFalse(issue.changes.get(1).hasComment());

    assertTrue(IssueUtils.deleteIssue(repository, issue.id, "D"));

    repository.close();
}

From source file:com.gitblit.tests.JGitUtilsTest.java

License:Apache License

@Test
public void testOpenRepository() throws Exception {
    Repository repository = GitBlitSuite.getHelloworldRepository();
    repository.close();
    assertNotNull("Could not find repository!", repository);
}

From source file:com.gitblit.tests.JGitUtilsTest.java

License:Apache License

@Test
public void testFirstCommit() throws Exception {
    assertEquals(new Date(0), JGitUtils.getFirstChange(null, null));

    Repository repository = GitBlitSuite.getHelloworldRepository();
    RevCommit commit = JGitUtils.getFirstCommit(repository, null);
    Date firstChange = JGitUtils.getFirstChange(repository, null);
    repository.close();
    assertNotNull("Could not get first commit!", commit);
    assertEquals("Incorrect first commit!", "f554664a346629dc2b839f7292d06bad2db4aece", commit.getName());
    assertTrue(firstChange.equals(new Date(commit.getCommitTime() * 1000L)));
}

From source file:com.gitblit.tests.JGitUtilsTest.java

License:Apache License

@Test
public void testLastCommit() throws Exception {
    assertEquals(new Date(0), JGitUtils.getLastChange(null).when);

    Repository repository = GitBlitSuite.getHelloworldRepository();
    assertTrue(JGitUtils.getCommit(repository, null) != null);
    Date date = JGitUtils.getLastChange(repository).when;
    repository.close();
    assertNotNull("Could not get last repository change date!", date);
}

From source file:com.gitblit.tests.JGitUtilsTest.java

License:Apache License

@Test
public void testCreateRepository() throws Exception {
    String[] repositories = { "NewTestRepository.git", "NewTestRepository" };
    for (String repositoryName : repositories) {
        Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, repositoryName);
        File folder = FileKey.resolve(new File(GitBlitSuite.REPOSITORIES, repositoryName), FS.DETECTED);
        assertNotNull(repository);// w  w  w  . jav a 2  s. c o m
        assertFalse(JGitUtils.hasCommits(repository));
        assertNull(JGitUtils.getFirstCommit(repository, null));
        assertEquals(folder.lastModified(), JGitUtils.getFirstChange(repository, null).getTime());
        assertEquals(folder.lastModified(), JGitUtils.getLastChange(repository).when.getTime());
        assertNull(JGitUtils.getCommit(repository, null));
        repository.close();
        RepositoryCache.close(repository);
        FileUtils.delete(repository.getDirectory(), FileUtils.RECURSIVE);
    }
}

From source file:com.gitblit.tests.JGitUtilsTest.java

License:Apache License

@Test
public void testCreateRepositoryShared() throws Exception {
    String[] repositories = { "NewSharedTestRepository.git" };
    for (String repositoryName : repositories) {
        Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, repositoryName, "group");
        File folder = FileKey.resolve(new File(GitBlitSuite.REPOSITORIES, repositoryName), FS.DETECTED);
        assertNotNull(repository);/*from  w  w w. j  a va  2s. c  o  m*/
        assertFalse(JGitUtils.hasCommits(repository));
        assertNull(JGitUtils.getFirstCommit(repository, null));

        assertEquals("1", repository.getConfig().getString("core", null, "sharedRepository"));

        assertTrue(folder.exists());
        if (!JnaUtils.isWindows()) {
            int mode = JnaUtils.getFilemode(folder);
            assertEquals(JnaUtils.S_ISGID, mode & JnaUtils.S_ISGID);
            assertEquals(JnaUtils.S_IRWXG, mode & JnaUtils.S_IRWXG);

            mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/HEAD");
            assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);

            mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/config");
            assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
        }

        repository.close();
        RepositoryCache.close(repository);
        FileUtils.delete(repository.getDirectory(), FileUtils.RECURSIVE);
    }
}

From source file:com.gitblit.tests.JGitUtilsTest.java

License:Apache License

@Test
public void testCreateRepositorySharedCustom() throws Exception {
    String[] repositories = { "NewSharedTestRepository.git" };
    for (String repositoryName : repositories) {
        Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, repositoryName, "660");
        File folder = FileKey.resolve(new File(GitBlitSuite.REPOSITORIES, repositoryName), FS.DETECTED);
        assertNotNull(repository);/* ww w . ja  v a  2  s  . co  m*/
        assertFalse(JGitUtils.hasCommits(repository));
        assertNull(JGitUtils.getFirstCommit(repository, null));

        assertEquals("0660", repository.getConfig().getString("core", null, "sharedRepository"));

        assertTrue(folder.exists());
        if (!JnaUtils.isWindows()) {
            int mode = JnaUtils.getFilemode(folder);
            assertEquals(JnaUtils.S_ISGID, mode & JnaUtils.S_ISGID);
            assertEquals(JnaUtils.S_IRWXG, mode & JnaUtils.S_IRWXG);
            assertEquals(0, mode & JnaUtils.S_IRWXO);

            mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/HEAD");
            assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
            assertEquals(0, mode & JnaUtils.S_IRWXO);

            mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/config");
            assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
            assertEquals(0, mode & JnaUtils.S_IRWXO);
        }

        repository.close();
        RepositoryCache.close(repository);
        FileUtils.delete(repository.getDirectory(), FileUtils.RECURSIVE);
    }
}

From source file:com.gitblit.tests.JGitUtilsTest.java

License:Apache License

@Test
public void testCreateRepositorySharedSgidParent() throws Exception {
    if (!JnaUtils.isWindows()) {
        String repositoryAll = "NewTestRepositoryAll.git";
        String repositoryUmask = "NewTestRepositoryUmask.git";
        String sgidParent = "sgid";

        File parent = new File(GitBlitSuite.REPOSITORIES, sgidParent);
        File folder = null;//from   www  . jav  a2s  .  c  o m
        boolean parentExisted = parent.exists();
        try {
            if (!parentExisted) {
                assertTrue("Could not create SGID parent folder.", parent.mkdir());
            }
            int mode = JnaUtils.getFilemode(parent);
            assertTrue(mode > 0);
            assertEquals(0, JnaUtils.setFilemode(parent, mode | JnaUtils.S_ISGID | JnaUtils.S_IWGRP));

            Repository repository = JGitUtils.createRepository(parent, repositoryAll, "all");
            folder = FileKey.resolve(new File(parent, repositoryAll), FS.DETECTED);
            assertNotNull(repository);

            assertEquals("2", repository.getConfig().getString("core", null, "sharedRepository"));

            assertTrue(folder.exists());
            mode = JnaUtils.getFilemode(folder);
            assertEquals(JnaUtils.S_ISGID, mode & JnaUtils.S_ISGID);

            mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/HEAD");
            assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
            assertEquals(JnaUtils.S_IROTH, mode & JnaUtils.S_IRWXO);

            mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/config");
            assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
            assertEquals(JnaUtils.S_IROTH, mode & JnaUtils.S_IRWXO);

            repository.close();
            RepositoryCache.close(repository);

            repository = JGitUtils.createRepository(parent, repositoryUmask, "umask");
            folder = FileKey.resolve(new File(parent, repositoryUmask), FS.DETECTED);
            assertNotNull(repository);

            assertEquals(null, repository.getConfig().getString("core", null, "sharedRepository"));

            assertTrue(folder.exists());
            mode = JnaUtils.getFilemode(folder);
            assertEquals(JnaUtils.S_ISGID, mode & JnaUtils.S_ISGID);

            repository.close();
            RepositoryCache.close(repository);
        } finally {
            FileUtils.delete(new File(parent, repositoryAll), FileUtils.RECURSIVE | FileUtils.IGNORE_ERRORS);
            FileUtils.delete(new File(parent, repositoryUmask), FileUtils.RECURSIVE | FileUtils.IGNORE_ERRORS);
            if (!parentExisted) {
                FileUtils.delete(parent, FileUtils.RECURSIVE | FileUtils.IGNORE_ERRORS);
            }
        }
    }
}