aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org/eclipse/jgit/transport
diff options
context:
space:
mode:
authorDemetr Starshov <dstarshov@google.com>2020-05-06 17:36:34 -0700
committerDemetr Starshov <dstarshov@google.com>2020-05-08 17:57:20 -0700
commit519cb1e91b06fbc82b7e87431ac7485bf3c9d91b (patch)
treec69c9b376a69dfb1d91d96d52c2ad92ea9e9bf13 /org.eclipse.jgit/src/org/eclipse/jgit/transport
parent5072af65248ee76b76d91f3c367565c0a674de9d (diff)
downloadjgit-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')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/http/JDKHttpConnection.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/internal/DelegatingSSLSocketFactory.java101
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/internal/FullConnectivityChecker.java201
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());
- }
- }
- }
- }
-}