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:ShowFileDiff.java

License:Apache License

public static void main(String[] args) throws IOException, GitAPIException {
    Repository repository = null; //CookbookHelper.openJGitCookbookRepository();

    // the diff works on TreeIterators, we prepare two for the two branches
    AbstractTreeIterator oldTreeParser = prepareTreeParser(repository,
            "09c65401f3730eb3e619c33bf31e2376fb393727");
    AbstractTreeIterator newTreeParser = prepareTreeParser(repository,
            "aa31703b65774e4a06010824601e56375a70078c");

    // then the procelain diff-command returns a list of diff entries
    List<DiffEntry> diff = new Git(repository).diff().setOldTree(oldTreeParser).setNewTree(newTreeParser)
            .setPathFilter(PathFilter.create("README.md")).call();
    for (DiffEntry entry : diff) {
        System.out.println("Entry: " + entry + ", from: " + entry.getOldId() + ", to: " + entry.getNewId());
        DiffFormatter formatter = new DiffFormatter(System.out);
        formatter.setRepository(repository);
        formatter.format(entry);//w w w  .j  a v a 2 s. c  o m
    }

    repository.close();
}

From source file:actions.DownloadSPDX.java

/**
* Get the files from a given repository on github
* @param slotId The thread where the download is happening
* @param localPath The bigArchive on disk where the files will be placed
* @param location The username/repository identification. We'd
* expect something like triplecheck/reporter
* @return True if everything went ok, false if something went wrong
*///from  w  w  w .j a  va  2  s .co  m
public Boolean download(final int slotId, final File localPath, final String location) {
    // we can't have any older files
    files.deleteDir(localPath);
    final String REMOTE_URL = "https://github.com/" + location + ".git";
    try {

        Git.cloneRepository().setURI(REMOTE_URL).setDirectory(localPath).call();

        // now open the created repository
        FileRepositoryBuilder builder = new FileRepositoryBuilder();

        Repository repository = builder.setGitDir(localPath).readEnvironment() // scan environment GIT_* variables
                .findGitDir() // scan up the file system tree
                .build();

        System.out.println(slotId + "-> Downloaded repository: " + repository.getDirectory());

        repository.close();

    } catch (Exception ex) {
        Logger.getLogger(Repositories.class.getName()).log(Level.SEVERE, null, ex);
        // we need to add this event on the exception list
        utils_deprecated.files.addTextToFile(fileExceptionHappened, "\n" + location);
        // delete the files if possible
        files.deleteDir(localPath);
        System.out.println(slotId + " !!!! Failed to download: " + location);
        // clean up the slot
        slots[slotId] = false;
        return false;
    }

    System.out.println(slotId + "-> Downloaded: " + location);
    return true;
}

From source file:at.ac.tuwien.inso.subcat.miner.GitMiner.java

License:Open Source License

private void _run() throws IOException, MinerException, SQLException {
    FileRepositoryBuilder builder = new FileRepositoryBuilder();
    Repository repository = builder.setGitDir(new File(settings.srcLocalPath, ".git")).readEnvironment()
            .findGitDir().build();//from w  w w  .java 2s .  c  o  m

    /*
    Map<String,Ref> refs = repository.getAllRefs();
    for (Map.Entry<String, Ref> ref : refs.entrySet ()) {
       System.out.println (ref.getKey ());
    }
    */

    Ref head = repository.getRef(startRef);
    if (head == null) {
        throw new MinerException("Unknown reference: '" + startRef + "'");
    }

    RevWalk walk = new RevWalk(repository);
    RevCommit commit = walk.parseCommit(head.getObjectId());
    walk.markStart(commit);
    walk.sort(RevSort.REVERSE);

    // count commit: (fast)
    int commitCount = 0;
    Iterator<RevCommit> iter = walk.iterator();
    while (iter.hasNext()) {
        iter.next();
        commitCount++;
    }

    emitTasksTotal(commitCount);

    // process commits: (slow)
    walk.reset();
    walk.markStart(commit);
    walk.sort(RevSort.REVERSE);

    Map<String, ManagedFile> fileCache = new HashMap<String, ManagedFile>();

    for (RevCommit rev : walk) {
        if (stopped == true) {
            break;
        }

        processCommit(repository, walk, rev, fileCache);
    }

    walk.dispose();
    repository.close();
}

From source file:ch.dals.buildtools.git.core.GitUtil.java

License:Open Source License

public static String currentBranch(final File location) throws IOException {
    final FileRepositoryBuilder builder = new FileRepositoryBuilder();
    final File gitDir = builder.findGitDir(location).readEnvironment().getGitDir();
    if (gitDir == null) {
        throw new FileNotFoundException("Cannot find Git directory upwards from: '" + location + "'");
    }/* w  w w .  j  av a 2  s .co m*/
    final Repository repository = builder.build();
    try {
        final String branchName = repository.getBranch();
        if (branchName == null) {
            throw new FileNotFoundException("Failed to find HEAD reference in Git directory: '" + gitDir + "'");
        }
        return branchName;
    } finally {
        repository.close();
    }
}

From source file:com.bb.extensions.plugin.unittests.internal.git.GitWrapper.java

License:Open Source License

/**
 * Close the repository//from   www  .j  a  v  a 2s .c  o m
 */
public void closeRepository() {
    Repository repo = this.git.getRepository();
    if (repo != null) {
        repo.close();
    }
}

From source file:com.centurylink.mdw.plugin.project.assembly.ProjectInflator.java

License:Apache License

public void inflateCloudProject(final IRunnableContext container) {
    getProject().setCloudProject(true);/* w  w  w  . ja v  a  2 s .  com*/

    // get a project handle
    final IProject newProjectHandle = ResourcesPlugin.getWorkspace().getRoot()
            .getProject(workflowProject.getName());

    // get a project descriptor
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    final IProjectDescription description = workspace.newProjectDescription(newProjectHandle.getName());

    // create the new project operation
    IRunnableWithProgress op = new IRunnableWithProgress() {
        public void run(IProgressMonitor monitor) throws InvocationTargetException {
            Repository newRepo = null;
            try {
                if (workflowProject.getPersistType() == PersistType.Git) {
                    File localDir = new File(ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile()
                            + "/" + workflowProject.getName());
                    if (workflowProject.getMdwVcsRepository().hasRemoteRepository()) {
                        monitor.subTask("Cloning Git repository");
                        VcsRepository gitRepo = workflowProject.getMdwVcsRepository();
                        Git.cloneRepository().setURI(gitRepo.getRepositoryUrlWithCredentials())
                                .setDirectory(localDir).call();
                    } else {
                        newRepo = new FileRepository(new File(localDir + "/.git"));
                        newRepo.create();
                    }

                    // .gitignore
                    Generator generator = new Generator(shell);
                    JetAccess jet = getJet("source/.ignorejet", getProject().getSourceProject(), ".gitignore",
                            null);
                    generator.createFile(jet, monitor);
                }

                CreateProjectOperation op = new CreateProjectOperation(description, "MDW Cloud Project");
                PlatformUI.getWorkbench().getOperationSupport().getOperationHistory().execute(op, monitor,
                        WorkspaceUndoUtil.getUIInfoAdapter(shell));
            } catch (Exception ex) {
                throw new InvocationTargetException(ex);
            } finally {
                if (newRepo != null)
                    newRepo.close();
            }
        }
    };

    // run the new project creation operation
    try {
        container.run(false, false, op);
        ProgressMonitorDialog pmDialog = new MdwProgressMonitorDialog(MdwPlugin.getShell());
        pmDialog.run(true, false, new IRunnableWithProgress() {
            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                monitor.beginTask("Inflating Workflow Project", 250);
                monitor.worked(5);
                // configure as Java project
                ProjectConfigurator projConf = new ProjectConfigurator(getProject(), MdwPlugin.getSettings());
                projConf.setJava(new SubProgressMonitor(monitor, 3));

                ProjectUpdater updater = new ProjectUpdater(getProject(), MdwPlugin.getSettings());
                updater.updateMappingFiles(new SubProgressMonitor(monitor, 3)); // bootstrap
                                                                                // versions
                                                                                // of
                                                                                // the
                                                                                // property
                                                                                // files
                updater.updateFrameworkJars(new SubProgressMonitor(monitor, 150));
                updater.updateWebProjectJars(new SubProgressMonitor(monitor, 50));

                try {
                    if (getProject().isOsgi())
                        projConf.addJavaProjectSourceFolder(getProject().getOsgiSettings().getSourceDir(),
                                new SubProgressMonitor(monitor, 3));
                    else if (!getProject().isWar())
                        projConf.addJavaProjectSourceFolder("src", monitor);
                    projConf.setJavaBuildOutputPath("build/classes", new SubProgressMonitor(monitor, 5));
                    projConf.addFrameworkJarsToClasspath(monitor);

                    // add the workflow facet
                    getProject().setSkipFacetPostInstallUpdates(true); // already
                                                                       // did
                                                                       // framework
                                                                       // updates
                    IFacetedProject facetedProject = ProjectFacetsManager
                            .create(getProject().getSourceProject(), true, new SubProgressMonitor(monitor, 3));
                    IProjectFacetVersion javaFacetVersion = ProjectFacetsManager.getProjectFacet("java")
                            .getDefaultVersion();
                    if (Float.parseFloat(javaFacetVersion.getVersionString()) < 1.6)
                        javaFacetVersion = ProjectFacetsManager.getProjectFacet("java").getVersion("1.6");
                    if (workflowProject.isCloudOnly())
                        javaFacetVersion = ProjectFacetsManager.getProjectFacet("java").getVersion("1.7");
                    facetedProject.installProjectFacet(javaFacetVersion, null,
                            new SubProgressMonitor(monitor, 3));
                    IProjectFacetVersion mdwFacet = ProjectFacetsManager.getProjectFacet("mdw.workflow")
                            .getDefaultVersion();
                    facetedProject.installProjectFacet(mdwFacet, getProject(),
                            new SubProgressMonitor(monitor, 3));
                    if (workflowProject.isOsgi()) {
                        IProjectFacet utilFacet = ProjectFacetsManager.getProjectFacet("jst.utility");
                        IProjectFacetVersion facetVer = utilFacet.getDefaultVersion();
                        IActionDefinition def = facetVer.getActionDefinition(null,
                                IFacetedProject.Action.Type.INSTALL);
                        Object cfg = def.createConfigObject();
                        facetedProject.installProjectFacet(
                                ProjectFacetsManager.getProjectFacet("jst.utility").getDefaultVersion(), cfg,
                                new SubProgressMonitor(monitor, 3));
                    } else if (workflowProject.isWar()) {
                        // add the facet to the xml file
                        IFile facetsFile = workflowProject.getSourceProject()
                                .getFile(".settings/org.eclipse.wst.common.project.facet.core.xml");
                        if (facetsFile.exists()) {
                            String content = new String(PluginUtil.readFile(facetsFile));
                            int insert = content.indexOf("</faceted-project>");
                            content = content.substring(0, insert)
                                    + "  <installed facet=\"jst.web\" version=\"3.0\"/>\n"
                                    + content.substring(insert);
                            PluginUtil.writeFile(facetsFile, content, new SubProgressMonitor(monitor, 3));
                        }
                    }

                    final ProjectConfigurator configurator = new ProjectConfigurator(getProject(),
                            MdwPlugin.getSettings());
                    if (!workflowProject.isOsgi() && !workflowProject.isWar()) {
                        MdwPlugin.getDisplay().syncExec(new Runnable() {
                            public void run() {
                                try {
                                    configurator.createFrameworkSourceCodeAssociations(MdwPlugin.getShell(),
                                            new NullProgressMonitor());
                                } catch (CoreException ex) {
                                    PluginMessages.log(ex);
                                }
                            }
                        });
                    }

                    if (workflowProject.isOsgi()) {
                        generateOsgiArtifacts(new SubProgressMonitor(monitor, 10));
                        configurator.configureOsgiProject(shell, new SubProgressMonitor(monitor, 5));
                    } else if (workflowProject.isWar()) {
                        generateWarCloudArtifacts(new SubProgressMonitor(monitor, 10));
                        configurator.addMavenNature(new SubProgressMonitor(monitor, 5)); // force
                                                                                         // maven
                                                                                         // refresh
                    }
                } catch (Exception ex) {
                    throw new InvocationTargetException(ex);
                }
            }
        });
    } catch (Exception ex) {
        PluginMessages.uiError(ex, "Create Cloud Project", workflowProject);
    }
}

From source file:com.cisco.step.jenkins.plugins.jenkow.JenkowWorkflowRepository.java

License:Open Source License

void ensureWorkflowDefinition(String wfName) {
    String relName = mkWfPath(wfName);
    File wff = new File(getRepositoryDir(), relName);
    if (wff.exists())
        return;// w  w w  .  j  av a  2s. co m

    LOGGER.info("generating workflow definition " + wff);

    try {
        Map<String, String> vars = new HashMap<String, String>();
        vars.put("WORKFLOW_ID", WfUtil.mkWorkflowId(wfName));
        vars.put("WORKFLOW_NAME", wfName);
        String wfd = IOUtils.toString(getClass().getResourceAsStream("/templates/new.bpmn"));
        wfd = Util.replaceMacro(wfd, vars);
        FileUtils.writeStringToFile(wff, wfd);

        Repository r = openRepository();
        addAndCommit(r, relName, "added generated workflow definition " + wfName);
        r.close();
    } catch (IOException e) {
        LOGGER.log(Level.SEVERE, e.getMessage(), e);
    }
}

From source file:com.cloudcontrolled.cctrl.maven.plugin.deploy.CloudcontrolledDeploy.java

License:Apache License

/** {@inheritDoc} */
@Override/*  ww w.  j  a v  a 2s  . c  o m*/
public void execute() throws MojoExecutionException, MojoFailureException {

    if (deployment == null || deployment.isEmpty()) {
        deployment = retrieveBranch();
        if (CloudControlSupport.MASTER_BRANCH.equals(deployment)) {
            deployment = "default";
        }
    }

    if (deployment == null) {
        Repository repository = null;
        try {
            repository = getRepository();
            String branch = repository.getBranch();
            if (!CloudControlSupport.MASTER_BRANCH.equals(branch)) {
                deployment = branch;
            }
        } catch (IOException e) {
            throw new MojoExecutionException(e.getClass().getSimpleName(), e);
        } finally {
            if (repository != null) {
                repository.close();
            }
        }
    }

    String deploymentQualifier = application
            + (deployment != null ? ":" + deployment + (commitId != null ? ":" + commitId : "") : "");
    log.info("Deploying " + deploymentQualifier + " to CloudControl PaaS.");

    CloudControlClient client = CloudControlSupport.createCloudControlClient();
    UpdateDeploymentRequest request = CloudControlSupport.createUpdateDeploymentRequest(application, deployment,
            commitId);

    UpdateDeploymentResponse response = null;
    try {
        response = client.send(request);

        if (response.isError()) {
            throw new MojoFailureException(response.getContent());
        }
    } catch (CloudControlClientException ccce) {
        throw new MojoExecutionException("CloudControlClientException", ccce);
    }

    log.info("Successfully deployed " + deploymentQualifier);
    log.info("Please, visit to following domain: http://" + response.getDeployment().getDefaultSubdomain());
}

From source file:com.cloudcontrolled.cctrl.maven.plugin.push.CloudcontrolledPush.java

License:Apache License

private String push(String remoteLocation) throws MojoExecutionException {
    Repository repository = null;
    Git git;/*from   w  w w . j a  v  a 2 s . c om*/
    try {
        repository = getRepository();
        git = Git.wrap(repository);

        PushCommand pushCommand = git.push();
        pushCommand.setRemote(remoteLocation);
        pushCommand.setRefSpecs(new RefSpec(repository.getFullBranch()));

        Iterable<PushResult> pushResult = pushCommand.call();
        Iterator<PushResult> result = pushResult.iterator();

        StringBuffer buffer = new StringBuffer();
        if (result.hasNext()) {
            while (result.hasNext()) {
                String line = result.next().getMessages();
                if (!line.isEmpty()) {
                    buffer.append(line);
                    if (result.hasNext()) {
                        buffer.append(System.getProperty("line.separator"));
                    }
                }
            }
        }

        return buffer.toString();
    } catch (Exception e) {
        throw new MojoExecutionException(e.getClass().getSimpleName(), e);
    } finally {
        if (repository != null) {
            repository.close();
        }
    }
}

From source file:com.gitblit.DownloadZipServlet.java

License:Apache License

/**
 * Creates a zip stream from the repository of the requested data.
 * /*from  w  w w  . jav  a 2 s  . co  m*/
 * @param request
 * @param response
 * @throws javax.servlet.ServletException
 * @throws java.io.IOException
 */
private void processRequest(javax.servlet.http.HttpServletRequest request,
        javax.servlet.http.HttpServletResponse response)
        throws javax.servlet.ServletException, java.io.IOException {
    if (!GitBlit.getBoolean(Keys.web.allowZipDownloads, true)) {
        logger.warn("Zip downloads are disabled");
        response.sendError(HttpServletResponse.SC_FORBIDDEN);
        return;
    }

    String repository = request.getParameter("r");
    String basePath = request.getParameter("p");
    String objectId = request.getParameter("h");

    try {
        String name = repository;
        if (name.indexOf('/') > -1) {
            name = name.substring(name.lastIndexOf('/') + 1);
        }

        if (!StringUtils.isEmpty(basePath)) {
            name += "-" + basePath.replace('/', '_');
        }
        if (!StringUtils.isEmpty(objectId)) {
            name += "-" + objectId;
        }

        Repository r = GitBlit.self().getRepository(repository);
        if (r == null) {
            error(response, MessageFormat.format("# Error\nFailed to find repository {0}", repository));
            return;
        }
        RevCommit commit = JGitUtils.getCommit(r, objectId);
        if (commit == null) {
            error(response, MessageFormat.format("# Error\nFailed to find commit {0}", objectId));
            r.close();
            return;
        }
        Date date = JGitUtils.getCommitDate(commit);

        String contentType = "application/octet-stream";
        response.setContentType(contentType + "; charset=" + response.getCharacterEncoding());
        response.setHeader("Content-Disposition", "attachment; filename=\"" + name + ".zip" + "\"");
        response.setDateHeader("Last-Modified", date.getTime());
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        response.setDateHeader("Expires", 0);

        try {
            JGitUtils.zip(r, basePath, objectId, response.getOutputStream());
            response.flushBuffer();
        } catch (Throwable t) {
            logger.error("Failed to write attachment to client", t);
        }

        // close the repository
        r.close();
    } catch (Throwable t) {
        logger.error("Failed to write attachment to client", t);
    }
}