diff options
author | Demetr Starshov <dstarshov@google.com> | 2020-05-06 17:36:34 -0700 |
---|---|---|
committer | Demetr Starshov <dstarshov@google.com> | 2020-05-08 17:57:20 -0700 |
commit | 519cb1e91b06fbc82b7e87431ac7485bf3c9d91b (patch) | |
tree | c69c9b376a69dfb1d91d96d52c2ad92ea9e9bf13 /org.eclipse.jgit/src/org/eclipse/jgit/transport | |
parent | 5072af65248ee76b76d91f3c367565c0a674de9d (diff) | |
download | jgit-519cb1e91b06fbc82b7e87431ac7485bf3c9d91b.tar.gz jgit-519cb1e91b06fbc82b7e87431ac7485bf3c9d91b.zip |
Moving transport/internal -> internal/transport
Moving transport related internal classes into dedicated subpackage in
o/e/j/internal package.
Signed-off-by: Demetr Starshov <dstarshov@google.com>
Change-Id: I21ed029d359f5f7d8298f102efbb4b1dcdf404ad
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/transport')
4 files changed, 2 insertions, 304 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java index 8a8c1ae0ba..49413e54f3 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java @@ -48,6 +48,7 @@ import org.eclipse.jgit.internal.JGitText; import org.eclipse.jgit.internal.storage.file.PackLock; import org.eclipse.jgit.internal.submodule.SubmoduleValidator; import org.eclipse.jgit.internal.submodule.SubmoduleValidator.SubmoduleValidationException; +import org.eclipse.jgit.internal.transport.connectivity.FullConnectivityChecker; import org.eclipse.jgit.internal.transport.parser.FirstCommand; import org.eclipse.jgit.lib.AnyObjectId; import org.eclipse.jgit.lib.BatchRefUpdate; @@ -72,7 +73,6 @@ import org.eclipse.jgit.transport.ConnectivityChecker.ConnectivityCheckInfo; import org.eclipse.jgit.transport.PacketLineIn.InputOverLimitIOException; import org.eclipse.jgit.transport.ReceiveCommand.Result; import org.eclipse.jgit.transport.RefAdvertiser.PacketLineOutRefAdvertiser; -import org.eclipse.jgit.transport.internal.FullConnectivityChecker; import org.eclipse.jgit.util.io.InterruptTimer; import org.eclipse.jgit.util.io.LimitedInputStream; import org.eclipse.jgit.util.io.TimeoutInputStream; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/http/JDKHttpConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/http/JDKHttpConnection.java index 925c4e2f84..3b0bae21ef 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/http/JDKHttpConnection.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/http/JDKHttpConnection.java @@ -32,7 +32,7 @@ import javax.net.ssl.SSLSocket; import javax.net.ssl.TrustManager; import org.eclipse.jgit.annotations.NonNull; -import org.eclipse.jgit.transport.internal.DelegatingSSLSocketFactory; +import org.eclipse.jgit.internal.transport.http.DelegatingSSLSocketFactory; import org.eclipse.jgit.util.HttpSupport; /** * A {@link org.eclipse.jgit.transport.http.HttpConnection} which simply diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/internal/DelegatingSSLSocketFactory.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/internal/DelegatingSSLSocketFactory.java deleted file mode 100644 index d25ecd459d..0000000000 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/internal/DelegatingSSLSocketFactory.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2020 Thomas Wolf <thomas.wolf@paranor.ch> - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Distribution License v. 1.0 which is available at - * https://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: BSD-3-Clause - */ -package org.eclipse.jgit.transport.internal; - -import java.io.IOException; -import java.net.InetAddress; -import java.net.Socket; - -import javax.net.ssl.SSLSocket; -import javax.net.ssl.SSLSocketFactory; - -/** - * An {@link SSLSocketFactory} that delegates to another factory and allows - * configuring the created socket via {@link #configure(SSLSocket)} before it is - * returned. - */ -public abstract class DelegatingSSLSocketFactory extends SSLSocketFactory { - - private final SSLSocketFactory delegate; - - /** - * Creates a new {@link DelegatingSSLSocketFactory} based on the given - * delegate. - * - * @param delegate - * {@link SSLSocketFactory} to delegate to - */ - public DelegatingSSLSocketFactory(SSLSocketFactory delegate) { - this.delegate = delegate; - } - - @Override - public SSLSocket createSocket() throws IOException { - return prepare(delegate.createSocket()); - } - - @Override - public SSLSocket createSocket(String host, int port) throws IOException { - return prepare(delegate.createSocket(host, port)); - } - - @Override - public SSLSocket createSocket(String host, int port, - InetAddress localAddress, int localPort) throws IOException { - return prepare( - delegate.createSocket(host, port, localAddress, localPort)); - } - - @Override - public SSLSocket createSocket(InetAddress host, int port) - throws IOException { - return prepare(delegate.createSocket(host, port)); - } - - @Override - public SSLSocket createSocket(InetAddress host, int port, - InetAddress localAddress, int localPort) throws IOException { - return prepare( - delegate.createSocket(host, port, localAddress, localPort)); - } - - @Override - public SSLSocket createSocket(Socket socket, String host, int port, - boolean autoClose) throws IOException { - return prepare(delegate.createSocket(socket, host, port, autoClose)); - } - - @Override - public String[] getDefaultCipherSuites() { - return delegate.getDefaultCipherSuites(); - } - - @Override - public String[] getSupportedCipherSuites() { - return delegate.getSupportedCipherSuites(); - } - - private SSLSocket prepare(Socket socket) throws IOException { - SSLSocket sslSocket = (SSLSocket) socket; - configure(sslSocket); - return sslSocket; - } - - /** - * Configure the newly created socket. - * - * @param socket - * to configure - * @throws IOException - * if the socket cannot be configured - */ - protected abstract void configure(SSLSocket socket) throws IOException; - -} diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/internal/FullConnectivityChecker.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/internal/FullConnectivityChecker.java deleted file mode 100644 index 60d8f452ba..0000000000 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/internal/FullConnectivityChecker.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Copyright (c) 2019, Google LLC and others - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -package org.eclipse.jgit.transport.internal; - -import java.io.IOException; -import java.util.Set; - -import org.eclipse.jgit.errors.MissingObjectException; -import org.eclipse.jgit.internal.JGitText; -import org.eclipse.jgit.lib.Constants; -import org.eclipse.jgit.lib.ObjectId; -import org.eclipse.jgit.lib.ObjectIdSubclassMap; -import org.eclipse.jgit.lib.ProgressMonitor; -import org.eclipse.jgit.revwalk.ObjectWalk; -import org.eclipse.jgit.revwalk.RevBlob; -import org.eclipse.jgit.revwalk.RevCommit; -import org.eclipse.jgit.revwalk.RevFlag; -import org.eclipse.jgit.revwalk.RevObject; -import org.eclipse.jgit.revwalk.RevSort; -import org.eclipse.jgit.revwalk.RevTree; -import org.eclipse.jgit.transport.ConnectivityChecker; -import org.eclipse.jgit.transport.ReceiveCommand; -import org.eclipse.jgit.transport.ReceiveCommand.Result; - -/** - * A connectivity checker that uses the entire reference database to perform - * reachability checks when checking the connectivity of objects. If - * info.isCheckObjects() is set it will also check that objects referenced by - * deltas are either provided or reachable as well. - */ -public final class FullConnectivityChecker implements ConnectivityChecker { - @Override - public void checkConnectivity(ConnectivityCheckInfo connectivityCheckInfo, - Set<ObjectId> haves, ProgressMonitor pm) - throws MissingObjectException, IOException { - pm.beginTask(JGitText.get().countingObjects, - ProgressMonitor.UNKNOWN); - try (ObjectWalk ow = new ObjectWalk(connectivityCheckInfo.getRepository())) { - if (!markStartAndKnownNodes(connectivityCheckInfo, ow, haves, - pm)) { - return; - } - checkCommitTree(connectivityCheckInfo, ow, pm); - checkObjects(connectivityCheckInfo, ow, pm); - } finally { - pm.endTask(); - } - } - - /** - * @param connectivityCheckInfo - * Source for connectivity check. - * @param ow - * Walk which can also check blobs. - * @param haves - * Set of references known for client. - * @param pm - * Monitor to publish progress to. - * @return true if at least one new node was marked. - * @throws IOException - * an error occurred during connectivity checking. - */ - private boolean markStartAndKnownNodes( - ConnectivityCheckInfo connectivityCheckInfo, - ObjectWalk ow, - Set<ObjectId> haves, ProgressMonitor pm) - throws IOException { - boolean markTrees = connectivityCheckInfo - .isCheckObjects() - && !connectivityCheckInfo.getParser().getBaseObjectIds() - .isEmpty(); - if (connectivityCheckInfo.isCheckObjects()) { - ow.sort(RevSort.TOPO); - if (!connectivityCheckInfo.getParser().getBaseObjectIds() - .isEmpty()) { - ow.sort(RevSort.BOUNDARY, true); - } - } - boolean hasInteresting = false; - - for (ReceiveCommand cmd : connectivityCheckInfo.getCommands()) { - if (cmd.getResult() != Result.NOT_ATTEMPTED) { - continue; - } - if (cmd.getType() == ReceiveCommand.Type.DELETE) { - continue; - } - if (haves.contains(cmd.getNewId())) { - continue; - } - ow.markStart(ow.parseAny(cmd.getNewId())); - pm.update(1); - hasInteresting = true; - } - if (!hasInteresting) { - return false; - } - for (ObjectId have : haves) { - RevObject o = ow.parseAny(have); - ow.markUninteresting(o); - pm.update(1); - - if (markTrees) { - o = ow.peel(o); - if (o instanceof RevCommit) { - o = ((RevCommit) o).getTree(); - } - if (o instanceof RevTree) { - ow.markUninteresting(o); - } - } - } - return true; - } - - /** - * @param connectivityCheckInfo - * Source for connectivity check. - * @param ow - * Walk which can also check blobs. - * @param pm - * Monitor to publish progress to. - * @throws IOException - * an error occurred during connectivity checking. - */ - private void checkCommitTree(ConnectivityCheckInfo connectivityCheckInfo, - ObjectWalk ow, - ProgressMonitor pm) throws IOException { - RevCommit c; - ObjectIdSubclassMap<ObjectId> newObjectIds = connectivityCheckInfo - .getParser() - .getNewObjectIds(); - while ((c = ow.next()) != null) { - pm.update(1); - if (connectivityCheckInfo.isCheckObjects() - && !c.has(RevFlag.UNINTERESTING) - && !newObjectIds.contains(c)) { - throw new MissingObjectException(c, Constants.TYPE_COMMIT); - } - } - } - - /** - * @param connectivityCheckInfo - * Source for connectivity check. - * @param ow - * Walk which can also check blobs. - * @param pm - * Monitor to publish progress to. - * @throws IOException - * an error occurred during connectivity checking. - * - */ - private void checkObjects(ConnectivityCheckInfo connectivityCheckInfo, - ObjectWalk ow, - ProgressMonitor pm) throws IOException { - RevObject o; - ObjectIdSubclassMap<ObjectId> newObjectIds = connectivityCheckInfo - .getParser() - .getNewObjectIds(); - - while ((o = ow.nextObject()) != null) { - pm.update(1); - if (o.has(RevFlag.UNINTERESTING)) { - continue; - } - - if (connectivityCheckInfo.isCheckObjects()) { - if (newObjectIds.contains(o)) { - continue; - } - throw new MissingObjectException(o, o.getType()); - - } - - if (o instanceof RevBlob - && !connectivityCheckInfo.getRepository().getObjectDatabase() - .has(o)) { - throw new MissingObjectException(o, Constants.TYPE_BLOB); - } - } - - if (connectivityCheckInfo.isCheckObjects()) { - for (ObjectId id : connectivityCheckInfo.getParser() - .getBaseObjectIds()) { - o = ow.parseAny(id); - if (!o.has(RevFlag.UNINTERESTING)) { - throw new MissingObjectException(o, o.getType()); - } - } - } - } -} |