List of usage examples for org.eclipse.jgit.transport PushConnection close
@Override
void close();
Close any resources used by this connection.
From source file:jetbrains.buildServer.buildTriggers.vcs.git.GitLabelingSupport.java
License:Apache License
@NotNull private String push(@NotNull String label, @NotNull String version, @NotNull GitVcsRoot gitRoot, @NotNull Repository r, @NotNull Ref tagRef, @NotNull RevisionsInfo revisionsInfo) throws VcsException, IOException { long pushStart = System.currentTimeMillis(); final Transport tn = myTransportFactory.createTransport(r, gitRoot.getRepositoryPushURL(), gitRoot.getAuthSettings(), myConfig.getPushTimeoutSeconds()); PushConnection c = null; try {//from w ww .j av a2 s . c o m c = tn.openPush(); RemoteRefUpdate ru = new RemoteRefUpdate(r, tagRef.getName(), tagRef.getObjectId(), tagRef.getName(), false, null, null); PreparePackFunction preparePack = null; if (c instanceof BasePackPushConnection) { final RevTag tagObject = getTagObject(r, tagRef); if (tagObject != null) { preparePack = new PreparePackFunction(tagObject, revisionsInfo); ((BasePackPushConnection) c).setPreparePack(preparePack); } else { LOG.debug("Cannot locate the " + tagRef.getName() + " tag object, don't use pack heuristic"); } } c.push(NullProgressMonitor.INSTANCE, Collections.singletonMap(tagRef.getName(), ru)); LOG.info("Tag " + label + "=" + version + " was pushed with status " + ru.getStatus() + " for " + gitRoot.debugInfo() + " in " + (System.currentTimeMillis() - pushStart) + "ms" + (preparePack != null ? " (prepare pack " + preparePack.getPreparePackDurationMillis() + "ms)" : "")); switch (ru.getStatus()) { case UP_TO_DATE: case OK: break; default: String msg = ru.getMessage(); throw new VcsException("The remote '" + label + "' tag was not created" + ", status: " + ru.getStatus() + (!isEmpty(msg) ? ", message: " + msg : "")); } return label; } finally { if (c != null) c.close(); tn.close(); } }
From source file:jetbrains.buildServer.buildTriggers.vcs.git.GitMergeSupport.java
License:Apache License
@NotNull private MergeResult doMerge(@NotNull OperationContext context, @NotNull GitVcsRoot gitRoot, @NotNull Repository db, @NotNull String srcRevision, @NotNull String dstBranch, @NotNull String message, @NotNull MergeOptions options) throws IOException, VcsException { RefSpec spec = new RefSpec().setSource(GitUtils.expandRef(dstBranch)) .setDestination(GitUtils.expandRef(dstBranch)).setForceUpdate(true); myCommitLoader.fetch(db, gitRoot.getRepositoryFetchURL(), asList(spec), new FetchSettings(gitRoot.getAuthSettings())); RevCommit srcCommit = myCommitLoader.findCommit(db, srcRevision); if (srcCommit == null) srcCommit = myCommitLoader.loadCommit(context, gitRoot, srcRevision); Ref dstRef = db.getRef(dstBranch); RevCommit dstBranchLastCommit = myCommitLoader.loadCommit(context, gitRoot, dstRef.getObjectId().name()); ObjectId commitId;// www .jav a 2 s . c o m try { commitId = mergeCommits(gitRoot, db, srcCommit, dstBranchLastCommit, message, options); } catch (MergeFailedException e) { LOG.debug("Merge error, root " + gitRoot + ", revision " + srcRevision + ", destination " + dstBranch, e); return MergeResult.createMergeError(e.getConflicts()); } synchronized (myRepositoryManager.getWriteLock(gitRoot.getRepositoryDir())) { final Transport tn = myTransportFactory.createTransport(db, gitRoot.getRepositoryPushURL(), gitRoot.getAuthSettings(), myPluginConfig.getPushTimeoutSeconds()); try { final PushConnection c = tn.openPush(); try { RemoteRefUpdate ru = new RemoteRefUpdate(db, null, commitId, GitUtils.expandRef(dstBranch), false, null, dstBranchLastCommit); c.push(NullProgressMonitor.INSTANCE, Collections.singletonMap(GitUtils.expandRef(dstBranch), ru)); switch (ru.getStatus()) { case UP_TO_DATE: case OK: return MergeResult.createMergeSuccessResult(); default: return MergeResult.createMergeError("Push failed, " + ru.getMessage()); } } finally { c.close(); } } catch (IOException e) { LOG.debug("Error while pushing a merge commit, root " + gitRoot + ", revision " + srcRevision + ", destination " + dstBranch, e); throw e; } finally { tn.close(); } } }
From source file:jetbrains.buildServer.buildTriggers.vcs.git.TestConnectionCommand.java
License:Apache License
private void checkPushConnection(GitVcsRoot root, Repository r) throws NotSupportedException, VcsException, TransportException { if (!root.getRepositoryFetchURLNoFixedErrors().equals(root.getRepositoryPushURLNoFixedErrors())) { validate(root.getRepositoryPushURLNoFixedErrors()); final Transport push = myTransportFactory.createTransport(r, root.getRepositoryPushURLNoFixedErrors(), root.getAuthSettings()); PushConnection c = null; try {//from ww w.j a v a2 s . co m c = push.openPush(); c.getRefs(); } finally { if (c != null) { c.close(); } push.close(); } } }