Example usage for org.eclipse.jgit.transport Transport openFetch

List of usage examples for org.eclipse.jgit.transport Transport openFetch

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport Transport openFetch.

Prototype

public abstract FetchConnection openFetch() throws NotSupportedException, TransportException;

Source Link

Document

Begins a new connection for fetching from the remote repository.

Usage

From source file:com.google.gerrit.server.git.PushOp.java

License:Apache License

private Map<String, Ref> listRemote(final Transport tn) throws NotSupportedException, TransportException {
    final FetchConnection fc = tn.openFetch();
    try {/* w  w  w.  jav a2 s .  c  o m*/
        return fc.getRefsMap();
    } finally {
        fc.close();
    }
}

From source file:com.googlesource.gerrit.plugins.replication.PushOne.java

License:Apache License

private Map<String, Ref> listRemote(Transport tn) throws NotSupportedException, TransportException {
    try (FetchConnection fc = tn.openFetch()) {
        return fc.getRefsMap();
    }/* w w  w .  j  av  a  2 s  . co m*/
}

From source file:jetbrains.buildServer.buildTriggers.vcs.git.GitServerUtil.java

License:Apache License

/**
 * Removes branches of a bare repository which are not present in a remote repository
 *//*from  w  w  w .  j av a2  s .  c o m*/
private static void pruneRemovedBranches(@NotNull Repository db, @NotNull Transport tn) throws IOException {
    FetchConnection conn = null;
    try {
        conn = tn.openFetch();
        Map<String, Ref> remoteRefMap = conn.getRefsMap();
        for (Map.Entry<String, Ref> e : db.getAllRefs().entrySet()) {
            if (!remoteRefMap.containsKey(e.getKey())) {
                try {
                    RefUpdate refUpdate = db.getRefDatabase().newUpdate(e.getKey(), false);
                    refUpdate.setForceUpdate(true);
                    refUpdate.delete();
                } catch (Exception ex) {
                    LOG.info("Failed to prune removed ref " + e.getKey(), ex);
                    break;
                }
            }
        }
    } finally {
        if (conn != null)
            conn.close();
    }
}

From source file:jetbrains.buildServer.buildTriggers.vcs.git.GitVcsSupport.java

License:Apache License

@NotNull
private Map<String, Ref> getRemoteRefs(@NotNull Repository db, @NotNull GitVcsRoot gitRoot) throws Exception {
    long retryInterval = myConfig.getConnectionRetryIntervalMillis();
    int attemptsLeft = myConfig.getConnectionRetryAttempts();
    int timeout = myConfig.getRepositoryStateTimeoutSeconds();
    while (true) {
        final long start = System.currentTimeMillis();
        Transport transport = null;
        FetchConnection connection = null;
        try {/*w w  w  .j  a v a2 s . co  m*/
            transport = myTransportFactory.createTransport(db, gitRoot.getRepositoryFetchURL(),
                    gitRoot.getAuthSettings(), timeout);
            connection = transport.openFetch();
            return connection.getRefsMap();
        } catch (NotSupportedException nse) {
            throw friendlyNotSupportedException(gitRoot, nse);
        } catch (TransportException te) {
            attemptsLeft--;
            if (isRecoverable(te) && attemptsLeft > 0) {
                LOG.warn("List remote refs failed: " + te.getMessage() + ", " + attemptsLeft
                        + " attempt(s) left");
            } else {
                throw friendlyTransportException(te, gitRoot);
            }
        } catch (WrongPassphraseException e) {
            throw new VcsException(e.getMessage(), e);
        } finally {
            if (connection != null)
                connection.close();
            if (transport != null)
                transport.close();
            final long finish = System.currentTimeMillis();
            PERFORMANCE_LOG.debug("[getRemoteRefs] repository: " + LogUtil.describe(gitRoot) + ", took "
                    + (finish - start) + "ms");
        }
        Thread.sleep(retryInterval);
        retryInterval *= 2;
    }
}

From source file:org.eclipse.egit.core.op.ListRemoteOperation.java

License:Open Source License

/**
 * @param pm/*from ww  w . j  a  va 2 s. c  o  m*/
 *            the monitor to be used for reporting progress and responding
 *            to cancellation. The monitor is never <code>null</code>
 * @throws InvocationTargetException
 * @throws InterruptedException
 */
public void run(IProgressMonitor pm) throws InvocationTargetException, InterruptedException {
    Transport transport = null;
    Connection connection = null;
    try {
        transport = Transport.open(localDb, uri);
        if (credentialsProvider != null)
            transport.setCredentialsProvider(credentialsProvider);
        transport.setTimeout(this.timeout);

        if (pm != null)
            pm.beginTask(CoreText.ListRemoteOperation_title, IProgressMonitor.UNKNOWN);
        connection = transport.openFetch();
        remoteRefsMap = connection.getRefsMap();
    } catch (NotSupportedException e) {
        throw new InvocationTargetException(e);
    } catch (TransportException e) {
        throw new InvocationTargetException(e);
    } finally {
        if (connection != null)
            connection.close();
        if (transport != null)
            transport.close();
        if (pm != null)
            pm.done();
    }
}