Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Sohn2019-05-22 17:37:40 +0000
committerMatthias Sohn2019-05-22 17:37:40 +0000
commitbed7a45fb51fe8e89b32395053e64fc4b1d59ffc (patch)
tree61483d9d00614acf3276492d52fc358157764aa9
parentd31716f883a25789c85a1043451a13efc7090d97 (diff)
parent82169296184acdbb8e9ce588f34e8c083dd4c4c1 (diff)
downloadjgit-bed7a45fb51fe8e89b32395053e64fc4b1d59ffc.tar.gz
jgit-bed7a45fb51fe8e89b32395053e64fc4b1d59ffc.tar.xz
jgit-bed7a45fb51fe8e89b32395053e64fc4b1d59ffc.zip
Merge branch 'master' into stable-5.4
* master: ReachabilityCheckers: @since 5.4 Update Orbit to S20190521195709 for 2019-06 M3 Tune max heap size for tests GPG: check that the key found is a signing key GPG: use key fingerprint suffix to compare id for signing key Recognize ReachabilityCheckerTestCase as helper UploadPack: restore inadvertently deleted line UploadPack: Use reachability checker to validate non-advertised wants Bazel: Simplify names of bouncy castle libraries Convert to lambda or member reference BitmappedReachabilityChecker: Reachability check using bitmaps BitmapCalculator: Get the reachability bitmap of a commit ReachabilityChecker: Default implementation with a RevWalk Change-Id: I323c460853230abcffa94c4f34f15dbaff8c330c
-rw-r--r--WORKSPACE6
-rw-r--r--lib/BUILD6
-rw-r--r--org.eclipse.jgit.ant.test/pom.xml2
-rw-r--r--org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/MetaServlet.java13
-rw-r--r--org.eclipse.jgit.http.test/pom.xml2
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java18
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java40
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java32
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java19
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java29
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java19
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java20
-rw-r--r--org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java17
-rw-r--r--org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java30
-rw-r--r--org.eclipse.jgit.lfs.server.test/BUILD2
-rw-r--r--org.eclipse.jgit.lfs.server.test/pom.xml2
-rw-r--r--org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/UploadTest.java12
-rw-r--r--org.eclipse.jgit.lfs.test/pom.xml2
-rw-r--r--org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java9
-rw-r--r--org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java8
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target23
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd2
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target23
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd2
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.target23
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.tpd2
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target23
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd2
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target23
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd2
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target23
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd2
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target23
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd2
-rw-r--r--org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20190521195709.tpd (renamed from org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20190501151401.tpd)12
-rw-r--r--org.eclipse.jgit.pgm.test/BUILD2
-rw-r--r--org.eclipse.jgit.pgm.test/pom.xml2
-rw-r--r--org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java16
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CommandCatalog.java9
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Daemon.java26
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java8
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsRemote.java10
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java14
-rw-r--r--org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/auth/BasicAuthentication.java17
-rw-r--r--org.eclipse.jgit.test/BUILD1
-rw-r--r--org.eclipse.jgit.test/pom.xml2
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java117
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheBuilderTest.java16
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/events/ConfigChangeEventTest.java9
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcConcurrentTest.java23
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcPackRefsTest.java52
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java17
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java9
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java31
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabaseTest.java34
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java13
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ThreadSafeProgressMonitorTest.java43
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmapCalculatorTest.java139
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmappedReachabilityCheckerTest.java69
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/PedestrianReachabilityCheckerTest.java57
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ReachabilityCheckerTestCase.java168
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushConnectionTest.java34
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushOptionsTest.java18
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TestProtocolTest.java35
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java107
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java37
-rw-r--r--org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties1
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/DescribeCommand.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/ListBranchCommand.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java14
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEditor.java12
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheTree.java35
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java1
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java7
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LocalReplica.java25
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/RemoteGitReplica.java21
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java23
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexBuilder.java97
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaTask.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java65
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java7
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java7
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java13
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/internal/BouncyCastleGpgKeyLocator.java19
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/revwalk/BitmapCalculator.java93
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/revwalk/BitmappedReachabilityChecker.java122
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PedestrianReachabilityChecker.java98
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ReachabilityChecker.java90
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java46
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/PostReceiveHook.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/PostUploadHook.java7
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/PreReceiveHook.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateStore.java135
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/RefFilter.java7
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java10
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java16
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java121
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ReceivePackFactory.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/RepositoryResolver.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/UploadPackFactory.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java12
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java10
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java19
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/io/IsolatedOutputStream.java36
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/io/ThrowingPrintWriter.java10
112 files changed, 1675 insertions, 1242 deletions
diff --git a/WORKSPACE b/WORKSPACE
index 8ee3fece4f..7ddd55463f 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -215,21 +215,21 @@ maven_jar(
BOUNCYCASTLE_VER = "1.60"
maven_jar(
- name = "bcpg-jdk15on",
+ name = "bcpg",
artifact = "org.bouncycastle:bcpg-jdk15on:" + BOUNCYCASTLE_VER,
sha1 = "13c7a199c484127daad298996e95818478431a2c",
src_sha1 = "edcd9e86d95e39b4da39bb295efd93bc4f56266e",
)
maven_jar(
- name = "bcprov-jdk15on",
+ name = "bcprov",
artifact = "org.bouncycastle:bcprov-jdk15on:" + BOUNCYCASTLE_VER,
sha1 = "bd47ad3bd14b8e82595c7adaa143501e60842a84",
src_sha1 = "7c57a4d13fe53d9abb967bba600dd0b293dafd6a",
)
maven_jar(
- name = "bcpkix-jdk15on",
+ name = "bcpkix",
artifact = "org.bouncycastle:bcpkix-jdk15on:" + BOUNCYCASTLE_VER,
sha1 = "d0c46320fbc07be3a24eb13a56cee4e3d38e0c75",
src_sha1 = "a25f041293f401af08efba63ff4bbdce98134a03",
diff --git a/lib/BUILD b/lib/BUILD
index 992f7bd0a4..f41ad162f6 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -153,7 +153,7 @@ java_library(
"//org.eclipse.jgit:__pkg__",
"//org.eclipse.jgit.test:__pkg__",
],
- exports = ["@bcpg-jdk15on//jar"],
+ exports = ["@bcpg//jar"],
)
java_library(
@@ -162,7 +162,7 @@ java_library(
"//org.eclipse.jgit:__pkg__",
"//org.eclipse.jgit.test:__pkg__",
],
- exports = ["@bcprov-jdk15on//jar"],
+ exports = ["@bcprov//jar"],
)
java_library(
@@ -171,7 +171,7 @@ java_library(
"//org.eclipse.jgit:__pkg__",
"//org.eclipse.jgit.test:__pkg__",
],
- exports = ["@bcpkix-jdk15on//jar"],
+ exports = ["@bcpkix//jar"],
)
java_library(
diff --git a/org.eclipse.jgit.ant.test/pom.xml b/org.eclipse.jgit.ant.test/pom.xml
index cdf88e7821..0ba52d47c5 100644
--- a/org.eclipse.jgit.ant.test/pom.xml
+++ b/org.eclipse.jgit.ant.test/pom.xml
@@ -105,7 +105,7 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <argLine>@{argLine} -Xmx256m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine>
+ <argLine>@{argLine} -Xmx512m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine>
</configuration>
</plugin>
</plugins>
diff --git a/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/MetaServlet.java b/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/MetaServlet.java
index d8fa712ebf..14b6506ad3 100644
--- a/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/MetaServlet.java
+++ b/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/MetaServlet.java
@@ -47,7 +47,6 @@ import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
import java.io.IOException;
-import javax.servlet.FilterChain;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
@@ -140,14 +139,10 @@ public class MetaServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
- filter.doFilter(req, res, new FilterChain() {
- @Override
- public void doFilter(ServletRequest request,
- ServletResponse response) throws IOException,
- ServletException {
- ((HttpServletResponse) response).sendError(SC_NOT_FOUND);
- }
- });
+ filter.doFilter(req, res,
+ (ServletRequest request, ServletResponse response) -> {
+ ((HttpServletResponse) response).sendError(SC_NOT_FOUND);
+ });
}
/**
diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml
index 2426cb5b8b..df8dc27907 100644
--- a/org.eclipse.jgit.http.test/pom.xml
+++ b/org.eclipse.jgit.http.test/pom.xml
@@ -139,7 +139,7 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine>
+ <argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx512m</argLine>
<includes>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java
index 5a46967766..ec9ced0f70 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java
@@ -69,7 +69,6 @@ import org.eclipse.jgit.transport.ReceivePack;
import org.eclipse.jgit.transport.RemoteRefUpdate;
import org.eclipse.jgit.transport.Transport;
import org.eclipse.jgit.transport.URIish;
-import org.eclipse.jgit.transport.resolver.RepositoryResolver;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.junit.Before;
@@ -90,18 +89,13 @@ public class AdvertiseErrorTest extends HttpTestCase {
ServletContextHandler app = server.addContext("/git");
GitServlet gs = new GitServlet();
- gs.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
- @Override
- public Repository open(HttpServletRequest req, String name)
- throws RepositoryNotFoundException,
- ServiceNotEnabledException {
- if (!name.equals(srcName))
- throw new RepositoryNotFoundException(name);
-
- final Repository db = src.getRepository();
- db.incrementOpen();
- return db;
+ gs.setRepositoryResolver((HttpServletRequest req, String name) -> {
+ if (!name.equals(srcName)) {
+ throw new RepositoryNotFoundException(name);
}
+ final Repository db = src.getRepository();
+ db.incrementOpen();
+ return db;
});
gs.setReceivePackFactory(new DefaultReceivePackFactory() {
@Override
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java
index 8dce98beef..eb19365074 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java
@@ -75,7 +75,6 @@ import org.eclipse.jgit.transport.ReceivePack;
import org.eclipse.jgit.transport.RemoteRefUpdate;
import org.eclipse.jgit.transport.Transport;
import org.eclipse.jgit.transport.URIish;
-import org.eclipse.jgit.transport.resolver.RepositoryResolver;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.junit.Before;
@@ -117,18 +116,13 @@ public class GitServletResponseTests extends HttpTestCase {
ServletContextHandler app = server.addContext("/git");
gs = new GitServlet();
- gs.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
- @Override
- public Repository open(HttpServletRequest req, String name)
- throws RepositoryNotFoundException,
- ServiceNotEnabledException {
- if (!name.equals(repoName))
- throw new RepositoryNotFoundException(name);
-
- final Repository db = srv.getRepository();
- db.incrementOpen();
- return db;
+ gs.setRepositoryResolver((HttpServletRequest req, String name) -> {
+ if (!name.equals(repoName)) {
+ throw new RepositoryNotFoundException(name);
}
+ final Repository db = srv.getRepository();
+ db.incrementOpen();
+ return db;
});
gs.setReceivePackFactory(new DefaultReceivePackFactory() {
@Override
@@ -179,12 +173,8 @@ public class GitServletResponseTests extends HttpTestCase {
maxPackSize = 0;
postHook = null;
- preHook = new PreReceiveHook() {
- @Override
- public void onPreReceive(ReceivePack rp,
- Collection<ReceiveCommand> commands) {
- throw new IllegalStateException();
- }
+ preHook = (ReceivePack rp, Collection<ReceiveCommand> commands) -> {
+ throw new IllegalStateException();
};
try (Transport t = Transport.open(clientRepo, srvURI)) {
@@ -263,15 +253,11 @@ public class GitServletResponseTests extends HttpTestCase {
maxPackSize = 100;
// this PostReceiveHook when called after an unsuccesfull unpack will
// lead to an IllegalStateException
- postHook = new PostReceiveHook() {
- @Override
- public void onPostReceive(ReceivePack rp,
- Collection<ReceiveCommand> commands) {
- // the maxPackSize setting caused that the packfile couldn't be
- // saved to disk. Calling getPackSize() now will lead to a
- // IllegalStateException.
- rp.getPackSize();
- }
+ postHook = (ReceivePack rp, Collection<ReceiveCommand> commands) -> {
+ // the maxPackSize setting caused that the packfile couldn't be
+ // saved to disk. Calling getPackSize() now will lead to a
+ // IllegalStateException.
+ rp.getPackSize();
};
try (Transport t = Transport.open(clientRepo, srvURI)) {
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java
index 5a5ff1a8ae..49ff51a5b1 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java
@@ -70,14 +70,12 @@ import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevBlob;
import org.eclipse.jgit.revwalk.RevCommit;
-import org.eclipse.jgit.transport.PreReceiveHook;
import org.eclipse.jgit.transport.PushResult;
import org.eclipse.jgit.transport.ReceiveCommand;
import org.eclipse.jgit.transport.ReceivePack;
import org.eclipse.jgit.transport.RemoteRefUpdate;
import org.eclipse.jgit.transport.Transport;
import org.eclipse.jgit.transport.URIish;
-import org.eclipse.jgit.transport.resolver.RepositoryResolver;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.junit.Before;
@@ -98,18 +96,13 @@ public class HookMessageTest extends HttpTestCase {
ServletContextHandler app = server.addContext("/git");
GitServlet gs = new GitServlet();
- gs.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
- @Override
- public Repository open(HttpServletRequest req, String name)
- throws RepositoryNotFoundException,
- ServiceNotEnabledException {
- if (!name.equals(srcName))
- throw new RepositoryNotFoundException(name);
-
- final Repository db = src.getRepository();
- db.incrementOpen();
- return db;
+ gs.setRepositoryResolver((HttpServletRequest req, String name) -> {
+ if (!name.equals(srcName)) {
+ throw new RepositoryNotFoundException(name);
}
+ final Repository db = src.getRepository();
+ db.incrementOpen();
+ return db;
});
gs.setReceivePackFactory(new DefaultReceivePackFactory() {
@Override
@@ -117,14 +110,11 @@ public class HookMessageTest extends HttpTestCase {
throws ServiceNotEnabledException,
ServiceNotAuthorizedException {
ReceivePack recv = super.create(req, db);
- recv.setPreReceiveHook(new PreReceiveHook() {
- @Override
- public void onPreReceive(ReceivePack rp,
- Collection<ReceiveCommand> commands) {
- rp.sendMessage("message line 1");
- rp.sendError("no soup for you!");
- rp.sendMessage("come back next year!");
- }
+ recv.setPreReceiveHook((ReceivePack rp,
+ Collection<ReceiveCommand> commands) -> {
+ rp.sendMessage("message line 1");
+ rp.sendError("no soup for you!");
+ rp.sendMessage("come back next year!");
});
return recv;
}
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java
index 53626b1b2e..1660f14f34 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java
@@ -87,8 +87,6 @@ import org.eclipse.jgit.transport.URIish;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
import org.eclipse.jgit.transport.http.HttpConnection;
import org.eclipse.jgit.transport.http.JDKHttpConnectionFactory;
-import org.eclipse.jgit.transport.resolver.RepositoryResolver;
-import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.junit.Before;
import org.junit.Test;
@@ -141,18 +139,13 @@ public class HttpClientTests extends HttpTestCase {
private ServletContextHandler smart(String path) {
GitServlet gs = new GitServlet();
- gs.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
- @Override
- public Repository open(HttpServletRequest req, String name)
- throws RepositoryNotFoundException,
- ServiceNotEnabledException {
- final Repository db = remoteRepository.getRepository();
- if (!name.equals(nameOf(db)))
- throw new RepositoryNotFoundException(name);
-
- db.incrementOpen();
- return db;
+ gs.setRepositoryResolver((HttpServletRequest req, String name) -> {
+ final Repository db = remoteRepository.getRepository();
+ if (!name.equals(nameOf(db))) {
+ throw new RepositoryNotFoundException(name);
}
+ db.incrementOpen();
+ return db;
});
ServletContextHandler ctx = server.addContext(path);
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java
index 0415bcbb55..79df5a2ab2 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java
@@ -63,14 +63,12 @@ import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevBlob;
import org.eclipse.jgit.revwalk.RevCommit;
-import org.eclipse.jgit.transport.PostReceiveHook;
import org.eclipse.jgit.transport.PushResult;
import org.eclipse.jgit.transport.ReceiveCommand;
import org.eclipse.jgit.transport.ReceivePack;
import org.eclipse.jgit.transport.RemoteRefUpdate;
import org.eclipse.jgit.transport.Transport;
import org.eclipse.jgit.transport.URIish;
-import org.eclipse.jgit.transport.resolver.RepositoryResolver;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.junit.Before;
@@ -93,18 +91,13 @@ public class MeasurePackSizeTest extends HttpTestCase {
ServletContextHandler app = server.addContext("/git");
GitServlet gs = new GitServlet();
- gs.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
- @Override
- public Repository open(HttpServletRequest req, String name)
- throws RepositoryNotFoundException,
- ServiceNotEnabledException {
- if (!name.equals(srcName))
- throw new RepositoryNotFoundException(name);
-
- final Repository db = src.getRepository();
- db.incrementOpen();
- return db;
+ gs.setRepositoryResolver((HttpServletRequest req, String name) -> {
+ if (!name.equals(srcName)) {
+ throw new RepositoryNotFoundException(name);
}
+ final Repository db = src.getRepository();
+ db.incrementOpen();
+ return db;
});
gs.setReceivePackFactory(new DefaultReceivePackFactory() {
@Override
@@ -112,13 +105,9 @@ public class MeasurePackSizeTest extends HttpTestCase {
throws ServiceNotEnabledException,
ServiceNotAuthorizedException {
ReceivePack recv = super.create(req, db);
- recv.setPostReceiveHook(new PostReceiveHook() {
-
- @Override
- public void onPostReceive(ReceivePack rp,
- Collection<ReceiveCommand> commands) {
- packSize = rp.getPackSize();
- }
+ recv.setPostReceiveHook((ReceivePack rp,
+ Collection<ReceiveCommand> commands) -> {
+ packSize = rp.getPackSize();
});
return recv;
}
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
index a1baae3b26..f0fac5ab51 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
@@ -71,8 +71,6 @@ import org.eclipse.jgit.revwalk.RevBlob;
import org.eclipse.jgit.transport.PacketLineIn;
import org.eclipse.jgit.transport.PacketLineOut;
import org.eclipse.jgit.transport.URIish;
-import org.eclipse.jgit.transport.resolver.RepositoryResolver;
-import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.eclipse.jgit.util.NB;
import org.junit.Before;
import org.junit.Test;
@@ -94,18 +92,13 @@ public class ProtocolErrorTest extends HttpTestCase {
ServletContextHandler app = server.addContext("/git");
GitServlet gs = new GitServlet();
- gs.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
- @Override
- public Repository open(HttpServletRequest req, String name)
- throws RepositoryNotFoundException,
- ServiceNotEnabledException {
- if (!name.equals(srcName))
- throw new RepositoryNotFoundException(name);
-
- final Repository db = src.getRepository();
- db.incrementOpen();
- return db;
+ gs.setRepositoryResolver((HttpServletRequest req, String name) -> {
+ if (!name.equals(srcName)) {
+ throw new RepositoryNotFoundException(name);
}
+ final Repository db = src.getRepository();
+ db.incrementOpen();
+ return db;
});
app.addServlet(new ServletHolder(gs), "/*");
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
index aad029ccfc..54c1c03b50 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
@@ -124,9 +124,6 @@ import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
import org.eclipse.jgit.transport.http.HttpConnectionFactory;
import org.eclipse.jgit.transport.http.JDKHttpConnectionFactory;
import org.eclipse.jgit.transport.http.apache.HttpClientConnectionFactory;
-import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
-import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
-import org.eclipse.jgit.transport.resolver.UploadPackFactory;
import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.HttpSupport;
import org.eclipse.jgit.util.SystemReader;
@@ -192,18 +189,13 @@ public class SmartClientSmartServerTest extends HttpTestCase {
ConfigConstants.CONFIG_KEY_LOGALLREFUPDATES, true);
GitServlet gs = new GitServlet();
- gs.setUploadPackFactory(new UploadPackFactory<HttpServletRequest>() {
- @Override
- public UploadPack create(HttpServletRequest req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- DefaultUploadPackFactory f = new DefaultUploadPackFactory();
- UploadPack up = f.create(req, db);
- if (advertiseRefsHook != null) {
- up.setAdvertiseRefsHook(advertiseRefsHook);
- }
- return up;
+ gs.setUploadPackFactory((HttpServletRequest req, Repository db) -> {
+ DefaultUploadPackFactory f = new DefaultUploadPackFactory();
+ UploadPack up = f.create(req, db);
+ if (advertiseRefsHook != null) {
+ up.setAdvertiseRefsHook(advertiseRefsHook);
}
+ return up;
});
ServletContextHandler app = addNormalContext(gs, src, srcName);
diff --git a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java
index 245b510fe1..7c78330828 100644
--- a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java
+++ b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java
@@ -54,8 +54,6 @@ import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.http.server.GitServlet;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.transport.URIish;
-import org.eclipse.jgit.transport.resolver.RepositoryResolver;
-import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
/**
* Simple http server for testing http access to Git repositories.
@@ -136,17 +134,12 @@ public class SimpleHttpServer {
private ServletContextHandler smart(String path) {
GitServlet gs = new GitServlet();
- gs.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
- @Override
- public Repository open(HttpServletRequest req, String name)
- throws RepositoryNotFoundException,
- ServiceNotEnabledException {
- if (!name.equals(nameOf(db)))
- throw new RepositoryNotFoundException(name);
-
- db.incrementOpen();
- return db;
+ gs.setRepositoryResolver((HttpServletRequest req, String name) -> {
+ if (!name.equals(nameOf(db))) {
+ throw new RepositoryNotFoundException(name);
}
+ db.incrementOpen();
+ return db;
});
ServletContextHandler ctx = server.addContext(path);
diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java
index 8de386e344..89f2530a31 100644
--- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java
+++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java
@@ -171,22 +171,20 @@ public class MockSystemReader extends SystemReader {
/** {@inheritDoc} */
@Override
public MonotonicClock getClock() {
- return new MonotonicClock() {
- @Override
- public ProposedTimestamp propose() {
- long t = getCurrentTime();
- return new ProposedTimestamp() {
- @Override
- public long read(TimeUnit unit) {
- return unit.convert(t, TimeUnit.MILLISECONDS);
- }
-
- @Override
- public void blockUntil(Duration maxWait) {
- // Do not wait.
- }
- };
- }
+ return () -> {
+ long t = getCurrentTime();
+ return new ProposedTimestamp() {
+
+ @Override
+ public long read(TimeUnit unit) {
+ return unit.convert(t, TimeUnit.MILLISECONDS);
+ }
+
+ @Override
+ public void blockUntil(Duration maxWait) {
+ // Do not wait.
+ }
+ };
};
}
diff --git a/org.eclipse.jgit.lfs.server.test/BUILD b/org.eclipse.jgit.lfs.server.test/BUILD
index 1341dd6011..fb0d6918fd 100644
--- a/org.eclipse.jgit.lfs.server.test/BUILD
+++ b/org.eclipse.jgit.lfs.server.test/BUILD
@@ -32,7 +32,7 @@ junit_tests(
exclude = TEST_BASE,
),
jvm_flags = [
- "-Xmx256m",
+ "-Xmx512m",
"-Dfile.encoding=UTF-8",
],
tags = ["lfs-server"],
diff --git a/org.eclipse.jgit.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml
index 41ce5105ef..ce1e280f98 100644
--- a/org.eclipse.jgit.lfs.server.test/pom.xml
+++ b/org.eclipse.jgit.lfs.server.test/pom.xml
@@ -137,7 +137,7 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine>
+ <argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx512m</argLine>
</configuration>
</plugin>
</plugins>
diff --git a/org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/UploadTest.java b/org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/UploadTest.java
index 09f8d0aeaf..c6f9535564 100644
--- a/org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/UploadTest.java
+++ b/org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/UploadTest.java
@@ -53,7 +53,6 @@ import java.nio.file.Paths;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.Callable;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -123,13 +122,10 @@ public class UploadTest extends LfsServerTest {
ExecutorService e = Executors.newFixedThreadPool(count);
try {
for (Path p : paths) {
- e.submit(new Callable<Void>() {
- @Override
- public Void call() throws Exception {
- barrier.await();
- putContent(p);
- return null;
- }
+ e.submit(() -> {
+ barrier.await();
+ putContent(p);
+ return null;
});
}
} finally {
diff --git a/org.eclipse.jgit.lfs.test/pom.xml b/org.eclipse.jgit.lfs.test/pom.xml
index 30b73f8dbf..ef9770893b 100644
--- a/org.eclipse.jgit.lfs.test/pom.xml
+++ b/org.eclipse.jgit.lfs.test/pom.xml
@@ -111,7 +111,7 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine>
+ <argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx512m</argLine>
</configuration>
</plugin>
</plugins>
diff --git a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java
index 217e46f48e..80da802db4 100644
--- a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java
+++ b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java
@@ -78,14 +78,7 @@ public class CleanFilter extends FilterCommand {
* The factory is responsible for creating instances of
* {@link org.eclipse.jgit.lfs.CleanFilter}
*/
- public final static FilterCommandFactory FACTORY = new FilterCommandFactory() {
-
- @Override
- public FilterCommand create(Repository db, InputStream in,
- OutputStream out) throws IOException {
- return new CleanFilter(db, in, out);
- }
- };
+ public final static FilterCommandFactory FACTORY = CleanFilter::new;
/**
* Registers this filter by calling
diff --git a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java
index 7bacf49269..6b30da343e 100644
--- a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java
+++ b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java
@@ -92,13 +92,7 @@ public class SmudgeFilter extends FilterCommand {
* The factory is responsible for creating instances of
* {@link org.eclipse.jgit.lfs.SmudgeFilter}
*/
- public final static FilterCommandFactory FACTORY = new FilterCommandFactory() {
- @Override
- public FilterCommand create(Repository db, InputStream in,
- OutputStream out) throws IOException {
- return new SmudgeFilter(db, in, out);
- }
- };
+ public final static FilterCommandFactory FACTORY = SmudgeFilter::new;
/**
* Register this filter in JGit
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target
index 80086da31b..440092a174 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target
@@ -1,6 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="jgit-4.10" sequenceNumber="1557148658">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.10" sequenceNumber="1558537043">
<locations>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.client.source" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.continuation" version="9.4.14.v20181114"/>
@@ -19,17 +22,17 @@
<unit id="org.eclipse.jetty.util.source" version="9.4.14.v20181114"/>
<repository id="jetty-9.4.14" location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.14.v20181114"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
- <unit id="org.apache.ant" version="1.10.5.v20180808-0324"/>
- <unit id="org.apache.ant.source" version="1.10.5.v20180808-0324"/>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="org.apache.ant" version="1.10.6.v20190516-0412"/>
+ <unit id="org.apache.ant.source" version="1.10.6.v20190516-0412"/>
<unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.codec.source" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.compress.source" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190213-1430"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190213-1430"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190503-0009"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
@@ -79,11 +82,11 @@
<unit id="org.apache.sshd.osgi.source" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp.source" version="2.2.0.v20190425-2127"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190501151401/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190521195709/repository"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/releases/2018-12/"/>
</location>
</locations>
-</target> \ No newline at end of file
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd
index 6c0f9f8771..5bfd814115 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd
@@ -1,7 +1,7 @@
target "jgit-4.10" with source configurePhase
include "projects/jetty-9.4.14.tpd"
-include "orbit/S20190501151401.tpd"
+include "orbit/S20190521195709.tpd"
location "http://download.eclipse.org/releases/2018-12/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target
index ed4dc51249..a3ad331a46 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target
@@ -1,6 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="jgit-4.11" sequenceNumber="1557148673">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.11" sequenceNumber="1558539017">
<locations>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.client.source" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.continuation" version="9.4.14.v20181114"/>
@@ -19,17 +22,17 @@
<unit id="org.eclipse.jetty.util.source" version="9.4.14.v20181114"/>
<repository id="jetty-9.4.14" location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.14.v20181114"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
- <unit id="org.apache.ant" version="1.10.5.v20180808-0324"/>
- <unit id="org.apache.ant.source" version="1.10.5.v20180808-0324"/>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="org.apache.ant" version="1.10.6.v20190516-0412"/>
+ <unit id="org.apache.ant.source" version="1.10.6.v20190516-0412"/>
<unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.codec.source" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.compress.source" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190213-1430"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190213-1430"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190503-0009"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
@@ -79,11 +82,11 @@
<unit id="org.apache.sshd.osgi.source" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp.source" version="2.2.0.v20190425-2127"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190501151401/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190521195709/repository"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/releases/2019-03/"/>
</location>
</locations>
-</target> \ No newline at end of file
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd
index 6d4be47f29..8b3b509fd9 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd
@@ -1,7 +1,7 @@
target "jgit-4.11" with source configurePhase
include "projects/jetty-9.4.14.tpd"
-include "orbit/S20190501151401.tpd"
+include "orbit/S20190521195709.tpd"
location "http://download.eclipse.org/releases/2019-03/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.target
index aa9d951eef..2ea7b79f92 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.target
@@ -1,6 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="jgit-4.12-staging" sequenceNumber="1557148680">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.12-staging" sequenceNumber="1558539043">
<locations>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.client.source" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.continuation" version="9.4.14.v20181114"/>
@@ -19,17 +22,17 @@
<unit id="org.eclipse.jetty.util.source" version="9.4.14.v20181114"/>
<repository id="jetty-9.4.14" location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.14.v20181114"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
- <unit id="org.apache.ant" version="1.10.5.v20180808-0324"/>
- <unit id="org.apache.ant.source" version="1.10.5.v20180808-0324"/>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="org.apache.ant" version="1.10.6.v20190516-0412"/>
+ <unit id="org.apache.ant.source" version="1.10.6.v20190516-0412"/>
<unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.codec.source" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.compress.source" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190213-1430"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190213-1430"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190503-0009"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
@@ -79,11 +82,11 @@
<unit id="org.apache.sshd.osgi.source" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp.source" version="2.2.0.v20190425-2127"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190501151401/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190521195709/repository"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/staging/2019-06/"/>
</location>
</locations>
-</target> \ No newline at end of file
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.tpd
index 69e6b01c77..f0cd3049fa 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12-staging.tpd
@@ -1,7 +1,7 @@
target "jgit-4.12-staging" with source configurePhase
include "projects/jetty-9.4.14.tpd"
-include "orbit/S20190501151401.tpd"
+include "orbit/S20190521195709.tpd"
location "http://download.eclipse.org/staging/2019-06/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target
index 2a4103b66c..64cf3e7d2d 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target
@@ -1,6 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="jgit-4.6" sequenceNumber="1557148684">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.6" sequenceNumber="1558539043">
<locations>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.client.source" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.continuation" version="9.4.14.v20181114"/>
@@ -19,17 +22,17 @@
<unit id="org.eclipse.jetty.util.source" version="9.4.14.v20181114"/>
<repository id="jetty-9.4.14" location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.14.v20181114"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
- <unit id="org.apache.ant" version="1.10.5.v20180808-0324"/>
- <unit id="org.apache.ant.source" version="1.10.5.v20180808-0324"/>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="org.apache.ant" version="1.10.6.v20190516-0412"/>
+ <unit id="org.apache.ant.source" version="1.10.6.v20190516-0412"/>
<unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.codec.source" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.compress.source" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190213-1430"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190213-1430"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190503-0009"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
@@ -79,11 +82,11 @@
<unit id="org.apache.sshd.osgi.source" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp.source" version="2.2.0.v20190425-2127"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190501151401/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190521195709/repository"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/releases/neon/"/>
</location>
</locations>
-</target> \ No newline at end of file
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd
index 7a0a68d4b3..8ae721fed0 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd
@@ -1,7 +1,7 @@
target "jgit-4.6" with source configurePhase
include "projects/jetty-9.4.14.tpd"
-include "orbit/S20190501151401.tpd"
+include "orbit/S20190521195709.tpd"
location "http://download.eclipse.org/releases/neon/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target
index 53c95ace44..eb8c8e91df 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target
@@ -1,6 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="jgit-4.7" sequenceNumber="1557148689">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.7" sequenceNumber="1558539038">
<locations>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.client.source" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.continuation" version="9.4.14.v20181114"/>
@@ -19,17 +22,17 @@
<unit id="org.eclipse.jetty.util.source" version="9.4.14.v20181114"/>
<repository id="jetty-9.4.14" location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.14.v20181114"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
- <unit id="org.apache.ant" version="1.10.5.v20180808-0324"/>
- <unit id="org.apache.ant.source" version="1.10.5.v20180808-0324"/>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="org.apache.ant" version="1.10.6.v20190516-0412"/>
+ <unit id="org.apache.ant.source" version="1.10.6.v20190516-0412"/>
<unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.codec.source" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.compress.source" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190213-1430"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190213-1430"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190503-0009"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
@@ -79,11 +82,11 @@
<unit id="org.apache.sshd.osgi.source" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp.source" version="2.2.0.v20190425-2127"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190501151401/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190521195709/repository"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/releases/oxygen/"/>
</location>
</locations>
-</target> \ No newline at end of file
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd
index d87e20beda..430506aeea 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd
@@ -1,7 +1,7 @@
target "jgit-4.7" with source configurePhase
include "projects/jetty-9.4.14.tpd"
-include "orbit/S20190501151401.tpd"
+include "orbit/S20190521195709.tpd"
location "http://download.eclipse.org/releases/oxygen/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target
index 4caf1d9520..9764a61580 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target
@@ -1,6 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="jgit-4.8" sequenceNumber="1557148692">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.8" sequenceNumber="1558539037">
<locations>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.client.source" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.continuation" version="9.4.14.v20181114"/>
@@ -19,17 +22,17 @@
<unit id="org.eclipse.jetty.util.source" version="9.4.14.v20181114"/>
<repository id="jetty-9.4.14" location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.14.v20181114"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
- <unit id="org.apache.ant" version="1.10.5.v20180808-0324"/>
- <unit id="org.apache.ant.source" version="1.10.5.v20180808-0324"/>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="org.apache.ant" version="1.10.6.v20190516-0412"/>
+ <unit id="org.apache.ant.source" version="1.10.6.v20190516-0412"/>
<unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.codec.source" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.compress.source" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190213-1430"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190213-1430"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190503-0009"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
@@ -79,11 +82,11 @@
<unit id="org.apache.sshd.osgi.source" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp.source" version="2.2.0.v20190425-2127"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190501151401/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190521195709/repository"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/releases/photon/"/>
</location>
</locations>
-</target> \ No newline at end of file
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd
index e29d7cb297..e18fc7255c 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd
@@ -1,7 +1,7 @@
target "jgit-4.8" with source configurePhase
include "projects/jetty-9.4.14.tpd"
-include "orbit/S20190501151401.tpd"
+include "orbit/S20190521195709.tpd"
location "http://download.eclipse.org/releases/photon/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target
index 8f3d59390d..331d141b65 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target
@@ -1,6 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="jgit-4.9" sequenceNumber="1557148695">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.9" sequenceNumber="1558539042">
<locations>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.client.source" version="9.4.14.v20181114"/>
<unit id="org.eclipse.jetty.continuation" version="9.4.14.v20181114"/>
@@ -19,17 +22,17 @@
<unit id="org.eclipse.jetty.util.source" version="9.4.14.v20181114"/>
<repository id="jetty-9.4.14" location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.14.v20181114"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
- <unit id="org.apache.ant" version="1.10.5.v20180808-0324"/>
- <unit id="org.apache.ant.source" version="1.10.5.v20180808-0324"/>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="org.apache.ant" version="1.10.6.v20190516-0412"/>
+ <unit id="org.apache.ant.source" version="1.10.6.v20190516-0412"/>
<unit id="org.apache.commons.codec" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.codec.source" version="1.10.0.v20180409-1845"/>
<unit id="org.apache.commons.compress" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.compress.source" version="1.18.0.v20181121-2221"/>
<unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190213-1430"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190213-1430"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.6.v20190503-0009"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.6.v20190503-0009"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.10.v20190123-2214"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
@@ -79,11 +82,11 @@
<unit id="org.apache.sshd.osgi.source" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp.source" version="2.2.0.v20190425-2127"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190501151401/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20190521195709/repository"/>
</location>
- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/releases/2018-09/"/>
</location>
</locations>
-</target> \ No newline at end of file
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd
index a36742edc2..6b71dff4a4 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd
@@ -1,7 +1,7 @@
target "jgit-4.9" with source configurePhase
include "projects/jetty-9.4.14.tpd"
-include "orbit/S20190501151401.tpd"
+include "orbit/S20190521195709.tpd"
location "http://download.eclipse.org/releases/2018-09/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20190501151401.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20190521195709.tpd
index 6cb4d12e51..d526ab4325 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20190501151401.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20190521195709.tpd
@@ -1,17 +1,17 @@
-target "S20190501151401" with source configurePhase
+target "S20190521195709" with source configurePhase
// see http://download.eclipse.org/tools/orbit/downloads/
-location "http://download.eclipse.org/tools/orbit/downloads/drops/S20190501151401/repository" {
- org.apache.ant [1.10.5.v20180808-0324,1.10.5.v20180808-0324]
- org.apache.ant.source [1.10.5.v20180808-0324,1.10.5.v20180808-0324]
+location "http://download.eclipse.org/tools/orbit/downloads/drops/S20190521195709/repository" {
+ org.apache.ant [1.10.6.v20190516-0412,1.10.6.v20190516-0412]
+ org.apache.ant.source [1.10.6.v20190516-0412,1.10.6.v20190516-0412]
org.apache.commons.codec [1.10.0.v20180409-1845,1.10.0.v20180409-1845]
org.apache.commons.codec.source [1.10.0.v20180409-1845,1.10.0.v20180409-1845]
org.apache.commons.compress [1.18.0.v20181121-2221,1.18.0.v20181121-2221]
org.apache.commons.compress.source [1.18.0.v20181121-2221,1.18.0.v20181121-2221]
org.apache.commons.logging [1.2.0.v20180409-1502,1.2.0.v20180409-1502]
org.apache.commons.logging.source [1.2.0.v20180409-1502,1.2.0.v20180409-1502]
- org.apache.httpcomponents.httpclient [4.5.6.v20190213-1430,4.5.6.v20190213-1430]
- org.apache.httpcomponents.httpclient.source [4.5.6.v20190213-1430,4.5.6.v20190213-1430]
+ org.apache.httpcomponents.httpclient [4.5.6.v20190503-0009,4.5.6.v20190503-0009]
+ org.apache.httpcomponents.httpclient.source [4.5.6.v20190503-0009,4.5.6.v20190503-0009]
org.apache.httpcomponents.httpcore [4.4.10.v20190123-2214,4.4.10.v20190123-2214]
org.apache.httpcomponents.httpcore.source [4.4.10.v20190123-2214,4.4.10.v20190123-2214]
org.apache.log4j [1.2.15.v201012070815,1.2.15.v201012070815]
diff --git a/org.eclipse.jgit.pgm.test/BUILD b/org.eclipse.jgit.pgm.test/BUILD
index 5bedf9ade1..f32fa12de8 100644
--- a/org.eclipse.jgit.pgm.test/BUILD
+++ b/org.eclipse.jgit.pgm.test/BUILD
@@ -7,7 +7,7 @@ junit_tests(
name = "pgm",
srcs = glob(["tst/**/*.java"]),
jvm_flags = [
- "-Xmx256m",
+ "-Xmx512m",
"-Dfile.encoding=UTF-8",
],
tags = ["pgm"],
diff --git a/org.eclipse.jgit.pgm.test/pom.xml b/org.eclipse.jgit.pgm.test/pom.xml
index 326c28e65e..fcdebdca30 100644
--- a/org.eclipse.jgit.pgm.test/pom.xml
+++ b/org.eclipse.jgit.pgm.test/pom.xml
@@ -109,7 +109,7 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory}</argLine>
+ <argLine>@{argLine} -Xmx512m -Djava.io.tmpdir=${project.build.directory}</argLine>
</configuration>
</plugin>
</plugins>
diff --git a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java
index 47eb156c55..e07fdd50d2 100644
--- a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java
+++ b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java
@@ -60,7 +60,6 @@ import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@@ -703,15 +702,12 @@ public class ArchiveTest extends CLIRepositoryTestCase {
private static Future<Object> writeAsync(OutputStream stream, byte[] data) {
ExecutorService executor = Executors.newSingleThreadExecutor();
- return executor.submit(new Callable<Object>() {
- @Override
- public Object call() throws IOException {
- try {
- stream.write(data);
- return null;
- } finally {
- stream.close();
- }
+ return executor.submit(() -> {
+ try {
+ stream.write(data);
+ return null;
+ } finally {
+ stream.close();
}
});
}
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CommandCatalog.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CommandCatalog.java
index b98bf151a5..dab52f6ce9 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CommandCatalog.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CommandCatalog.java
@@ -52,7 +52,6 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Comparator;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
@@ -115,12 +114,8 @@ public class CommandCatalog {
private static CommandRef[] toSortedArray(Collection<CommandRef> c) {
final CommandRef[] r = c.toArray(new CommandRef[0]);
- Arrays.sort(r, new Comparator<CommandRef>() {
- @Override
- public int compare(CommandRef o1, CommandRef o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
+ Arrays.sort(r, (CommandRef o1, CommandRef o2) -> o1.getName()
+ .compareTo(o2.getName()));
return r;
}
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Daemon.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Daemon.java
index 319b5e39dc..43826636aa 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Daemon.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Daemon.java
@@ -66,7 +66,6 @@ import org.eclipse.jgit.transport.DaemonService;
import org.eclipse.jgit.transport.ReceivePack;
import org.eclipse.jgit.transport.resolver.FileResolver;
import org.eclipse.jgit.transport.resolver.ReceivePackFactory;
-import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.eclipse.jgit.util.FS;
import org.kohsuke.args4j.Argument;
@@ -188,22 +187,17 @@ class Daemon extends TextBuiltin {
final ReceivePackFactory<DaemonClient> factory;
factory = daemon.getReceivePackFactory();
- daemon.setReceivePackFactory(new ReceivePackFactory<DaemonClient>() {
- @Override
- public ReceivePack create(DaemonClient req, Repository repo)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- ReceivePack rp = factory.create(req, repo);
- KetchLeader leader;
- try {
- leader = leaders.get(repo);
- } catch (URISyntaxException err) {
- throw new ServiceNotEnabledException(
- KetchText.get().invalidFollowerUri, err);
- }
- rp.setPreReceiveHook(new KetchPreReceive(leader));
- return rp;
+ daemon.setReceivePackFactory((DaemonClient req, Repository repo) -> {
+ ReceivePack rp = factory.create(req, repo);
+ KetchLeader leader;
+ try {
+ leader = leaders.get(repo);
+ } catch (URISyntaxException err) {
+ throw new ServiceNotEnabledException(
+ KetchText.get().invalidFollowerUri, err);
}
+ rp.setPreReceiveHook(new KetchPreReceive(leader));
+ return rp;
});
}
}
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java
index 2b5af5d7b7..00bbfb788b 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java
@@ -47,7 +47,6 @@ package org.eclipse.jgit.pgm;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
@@ -87,11 +86,8 @@ class Glog extends RevWalkTextBuiltin {
final JPanel buttons = new JPanel(new FlowLayout());
final JButton repaint = new JButton();
repaint.setText(CLIText.get().repaint);
- repaint.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- graphPane.repaint();
- }
+ repaint.addActionListener((ActionEvent e) -> {
+ graphPane.repaint();
});
buttons.add(repaint);
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsRemote.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsRemote.java
index 1c2564dd7c..708fcde683 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsRemote.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsRemote.java
@@ -46,7 +46,6 @@
package org.eclipse.jgit.pgm;
import java.io.IOException;
-import java.util.Comparator;
import java.util.TreeSet;
import org.eclipse.jgit.api.Git;
@@ -76,13 +75,8 @@ class LsRemote extends TextBuiltin {
protected void run() {
LsRemoteCommand command = Git.lsRemoteRepository().setRemote(remote)
.setTimeout(timeout).setHeads(heads).setTags(tags);
- TreeSet<Ref> refs = new TreeSet<>(new Comparator<Ref>() {
-
- @Override
- public int compare(Ref r1, Ref r2) {
- return r1.getName().compareTo(r2.getName());
- }
- });
+ TreeSet<Ref> refs = new TreeSet<>(
+ (Ref r1, Ref r2) -> r1.getName().compareTo(r2.getName()));
try {
refs.addAll(command.call());
for (Ref r : refs) {
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
index 6165c0aeed..85a74448f7 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
@@ -52,7 +52,6 @@ import java.lang.management.ThreadMXBean;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import org.eclipse.jgit.diff.DiffAlgorithm;
@@ -235,15 +234,12 @@ class DiffAlgorithms extends TextBuiltin {
}
}
- Collections.sort(all, new Comparator<Test>() {
- @Override
- public int compare(Test a, Test b) {
- int result = Long.signum(a.runningTimeNanos - b.runningTimeNanos);
- if (result == 0) {
- result = a.algorithm.name.compareTo(b.algorithm.name);
- }
- return result;
+ Collections.sort(all, (Test a, Test b) -> {
+ int result = Long.signum(a.runningTimeNanos - b.runningTimeNanos);
+ if (result == 0) {
+ result = a.algorithm.name.compareTo(b.algorithm.name);
}
+ return result;
});
File directory = repo.getDirectory();
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/auth/BasicAuthentication.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/auth/BasicAuthentication.java
index a257a5ebc8..6fa528daf5 100644
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/auth/BasicAuthentication.java
+++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/auth/BasicAuthentication.java
@@ -145,18 +145,13 @@ public abstract class BasicAuthentication<ParameterType, TokenType>
*/
protected void askCredentials() {
clearPassword();
- PasswordAuthentication auth = AccessController
- .doPrivileged(new PrivilegedAction<PasswordAuthentication>() {
-
- @Override
- public PasswordAuthentication run() {
- return Authenticator.requestPasswordAuthentication(
- proxy.getHostString(), proxy.getAddress(),
- proxy.getPort(), SshConstants.SSH_SCHEME,
+ PasswordAuthentication auth = AccessController.doPrivileged(
+ (PrivilegedAction<PasswordAuthentication>) () -> Authenticator
+ .requestPasswordAuthentication(proxy.getHostString(),
+ proxy.getAddress(), proxy.getPort(),
+ SshConstants.SSH_SCHEME,
SshdText.get().proxyPasswordPrompt, "Basic", //$NON-NLS-1$
- null, RequestorType.PROXY);
- }
- });
+ null, RequestorType.PROXY));
if (auth == null) {
user = ""; //$NON-NLS-1$
throw new CancellationException(
diff --git a/org.eclipse.jgit.test/BUILD b/org.eclipse.jgit.test/BUILD
index b9fb89c95f..be4fdbdea9 100644
--- a/org.eclipse.jgit.test/BUILD
+++ b/org.eclipse.jgit.test/BUILD
@@ -19,6 +19,7 @@ HELPERS = glob(
"nls/MissingPropertyBundle.java",
"nls/NoPropertiesBundle.java",
"nls/NonTranslatedBundle.java",
+ "revwalk/ReachabilityCheckerTestCase.java",
"revwalk/RevQueueTestCase.java",
"revwalk/RevWalkTestCase.java",
"transport/ObjectIdMatcher.java",
diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml
index c0b851396c..6248756184 100644
--- a/org.eclipse.jgit.test/pom.xml
+++ b/org.eclipse.jgit.test/pom.xml
@@ -190,7 +190,7 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <argLine>@{argLine} -Xmx1024m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine>
+ <argLine>@{argLine} -Xmx768m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine>
<includes>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java
index 9461c42500..2fd378842f 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java
@@ -346,14 +346,11 @@ public class PullCommandTest extends RepositoryTestCase {
@Test
/** global rebase config should be respected */
public void testPullWithRebasePreserve1Config() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- StoredConfig config = dbTarget.getConfig();
- config.setString("pull", null, "rebase", "preserve");
- config.save();
- return target.pull().call();
- }
+ Callable<PullResult> setup = () -> {
+ StoredConfig config = dbTarget.getConfig();
+ config.setString("pull", null, "rebase", "preserve");
+ config.save();
+ return target.pull().call();
};
doTestPullWithRebase(setup, TestPullMode.REBASE_PREASERVE);
}
@@ -361,15 +358,12 @@ public class PullCommandTest extends RepositoryTestCase {
@Test
/** the branch-local config should win over the global config */
public void testPullWithRebasePreserveConfig2() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- StoredConfig config = dbTarget.getConfig();
- config.setString("pull", null, "rebase", "false");
- config.setString("branch", "master", "rebase", "preserve");
- config.save();
- return target.pull().call();
- }
+ Callable<PullResult> setup = () -> {
+ StoredConfig config = dbTarget.getConfig();
+ config.setString("pull", null, "rebase", "false");
+ config.setString("branch", "master", "rebase", "preserve");
+ config.save();
+ return target.pull().call();
};
doTestPullWithRebase(setup, TestPullMode.REBASE_PREASERVE);
}
@@ -377,14 +371,11 @@ public class PullCommandTest extends RepositoryTestCase {
@Test
/** the branch-local config should be respected */
public void testPullWithRebasePreserveConfig3() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- StoredConfig config = dbTarget.getConfig();
- config.setString("branch", "master", "rebase", "preserve");
- config.save();
- return target.pull().call();
- }
+ Callable<PullResult> setup = () -> {
+ StoredConfig config = dbTarget.getConfig();
+ config.setString("branch", "master", "rebase", "preserve");
+ config.save();
+ return target.pull().call();
};
doTestPullWithRebase(setup, TestPullMode.REBASE_PREASERVE);
}
@@ -392,14 +383,11 @@ public class PullCommandTest extends RepositoryTestCase {
@Test
/** global rebase config should be respected */
public void testPullWithRebaseConfig1() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- StoredConfig config = dbTarget.getConfig();
- config.setString("pull", null, "rebase", "true");
- config.save();
- return target.pull().call();
- }
+ Callable<PullResult> setup = () -> {
+ StoredConfig config = dbTarget.getConfig();
+ config.setString("pull", null, "rebase", "true");
+ config.save();
+ return target.pull().call();
};
doTestPullWithRebase(setup, TestPullMode.REBASE);
}
@@ -407,15 +395,12 @@ public class PullCommandTest extends RepositoryTestCase {
@Test
/** the branch-local config should win over the global config */
public void testPullWithRebaseConfig2() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- StoredConfig config = dbTarget.getConfig();
- config.setString("pull", null, "rebase", "preserve");
- config.setString("branch", "master", "rebase", "true");
- config.save();
- return target.pull().call();
- }
+ Callable<PullResult> setup = () -> {
+ StoredConfig config = dbTarget.getConfig();
+ config.setString("pull", null, "rebase", "preserve");
+ config.setString("branch", "master", "rebase", "true");
+ config.save();
+ return target.pull().call();
};
doTestPullWithRebase(setup, TestPullMode.REBASE);
}
@@ -423,14 +408,11 @@ public class PullCommandTest extends RepositoryTestCase {
@Test
/** the branch-local config should be respected */
public void testPullWithRebaseConfig3() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- StoredConfig config = dbTarget.getConfig();
- config.setString("branch", "master", "rebase", "true");
- config.save();
- return target.pull().call();
- }
+ Callable<PullResult> setup = () -> {
+ StoredConfig config = dbTarget.getConfig();
+ config.setString("branch", "master", "rebase", "true");
+ config.save();
+ return target.pull().call();
};
doTestPullWithRebase(setup, TestPullMode.REBASE);
}
@@ -438,27 +420,19 @@ public class PullCommandTest extends RepositoryTestCase {
@Test
/** without config it should merge */
public void testPullWithoutConfig() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- return target.pull().call();
- }
- };
+ Callable<PullResult> setup = target.pull()::call;
doTestPullWithRebase(setup, TestPullMode.MERGE);
}
@Test
/** the branch local config should win over the global config */
public void testPullWithMergeConfig() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- StoredConfig config = dbTarget.getConfig();
- config.setString("pull", null, "rebase", "true");
- config.setString("branch", "master", "rebase", "false");
- config.save();
- return target.pull().call();
- }
+ Callable<PullResult> setup = () -> {
+ StoredConfig config = dbTarget.getConfig();
+ config.setString("pull", null, "rebase", "true");
+ config.setString("branch", "master", "rebase", "false");
+ config.save();
+ return target.pull().call();
};
doTestPullWithRebase(setup, TestPullMode.MERGE);
}
@@ -466,14 +440,11 @@ public class PullCommandTest extends RepositoryTestCase {
@Test
/** the branch local config should win over the global config */
public void testPullWithMergeConfig2() throws Exception {
- Callable<PullResult> setup = new Callable<PullResult>() {
- @Override
- public PullResult call() throws Exception {
- StoredConfig config = dbTarget.getConfig();
- config.setString("pull", null, "rebase", "false");
- config.save();
- return target.pull().call();
- }
+ Callable<PullResult> setup = () -> {
+ StoredConfig config = dbTarget.getConfig();
+ config.setString("pull", null, "rebase", "false");
+ config.save();
+ return target.pull().call();
};
doTestPullWithRebase(setup, TestPullMode.MERGE);
}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheBuilderTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheBuilderTest.java
index b284771e58..0c1131ba86 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheBuilderTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheBuilderTest.java
@@ -210,12 +210,8 @@ public class DirCacheBuilderTest extends RepositoryTestCase {
boolean receivedEvent = false;
DirCache dc = db.lockDirCache();
- IndexChangedListener listener = new IndexChangedListener() {
-
- @Override
- public void onIndexChanged(IndexChangedEvent event) {
- throw new ReceivedEventMarkerException();
- }
+ IndexChangedListener listener = (IndexChangedEvent event) -> {
+ throw new ReceivedEventMarkerException();
};
ListenerList l = db.getListenerList();
@@ -238,12 +234,8 @@ public class DirCacheBuilderTest extends RepositoryTestCase {
// do the same again, as this doesn't change index compared to first
// round we should get no event this time
dc = db.lockDirCache();
- listener = new IndexChangedListener() {
-
- @Override
- public void onIndexChanged(IndexChangedEvent event) {
- throw new ReceivedEventMarkerException();
- }
+ listener = (IndexChangedEvent event) -> {
+ throw new ReceivedEventMarkerException();
};
l = db.getListenerList();
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/events/ConfigChangeEventTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/events/ConfigChangeEventTest.java
index 3624100671..b6f312dfec 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/events/ConfigChangeEventTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/events/ConfigChangeEventTest.java
@@ -54,12 +54,9 @@ public class ConfigChangeEventTest extends RepositoryTestCase {
@Test
public void testFileRepository_ChangeEventsOnlyOnSave() throws Exception {
final ConfigChangedEvent[] events = new ConfigChangedEvent[1];
- db.getListenerList().addConfigChangedListener(
- new ConfigChangedListener() {
- @Override
- public void onConfigChanged(ConfigChangedEvent event) {
- events[0] = event;
- }
+ db.getListenerList()
+ .addConfigChangedListener((ConfigChangedEvent event) -> {
+ events[0] = event;
});
FileBasedConfig config = db.getConfig();
assertNull(events[0]);
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcConcurrentTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcConcurrentTest.java
index 05f7c65fa8..9e7d41a693 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcConcurrentTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcConcurrentTest.java
@@ -239,20 +239,15 @@ public class GcConcurrentTest extends GcTestCase {
SampleDataRepositoryTestCase.copyCGitTestPacks(repo);
ExecutorService executor = Executors.newSingleThreadExecutor();
final CountDownLatch latch = new CountDownLatch(1);
- Future<Collection<PackFile>> result = executor
- .submit(new Callable<Collection<PackFile>>() {
-
- @Override
- public Collection<PackFile> call() throws Exception {
- long start = System.currentTimeMillis();
- System.out.println("starting gc");
- latch.countDown();
- Collection<PackFile> r = gc.gc();
- System.out.println("gc took "
- + (System.currentTimeMillis() - start) + " ms");
- return r;
- }
- });
+ Future<Collection<PackFile>> result = executor.submit(() -> {
+ long start = System.currentTimeMillis();
+ System.out.println("starting gc");
+ latch.countDown();
+ Collection<PackFile> r = gc.gc();
+ System.out.println(
+ "gc took " + (System.currentTimeMillis() - start) + " ms");
+ return r;
+ });
try {
latch.await();
Thread.sleep(5);
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcPackRefsTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcPackRefsTest.java
index 9289e5a67b..1fa5aa09ad 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcPackRefsTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcPackRefsTest.java
@@ -155,38 +155,32 @@ public class GcPackRefsTest extends GcTestCase {
final CyclicBarrier packRefsDone = new CyclicBarrier(2);
ExecutorService pool = Executors.newFixedThreadPool(2);
try {
- Future<Result> result = pool.submit(new Callable<Result>() {
-
- @Override
- public Result call() throws Exception {
- RefUpdate update = new RefDirectoryUpdate(
- (RefDirectory) repo.getRefDatabase(),
- repo.exactRef("refs/tags/t")) {
- @Override
- public boolean isForceUpdate() {
- try {
- refUpdateLockedRef.await();
- packRefsDone.await();
- } catch (InterruptedException | BrokenBarrierException e) {
- Thread.currentThread().interrupt();
- }
- return super.isForceUpdate();
+ Future<Result> result = pool.submit(() -> {
+ RefUpdate update = new RefDirectoryUpdate(
+ (RefDirectory) repo.getRefDatabase(),
+ repo.exactRef("refs/tags/t")) {
+ @Override
+ public boolean isForceUpdate() {
+ try {
+ refUpdateLockedRef.await();
+ packRefsDone.await();
+ } catch (InterruptedException
+ | BrokenBarrierException e) {
+ Thread.currentThread().interrupt();
}
- };
- update.setForceUpdate(true);
- update.setNewObjectId(b);
- return update.update();
- }
+ return super.isForceUpdate();
+ }
+ };
+ update.setForceUpdate(true);
+ update.setNewObjectId(b);
+ return update.update();
});
- pool.submit(new Callable<Void>() {
- @Override
- public Void call() throws Exception {
- refUpdateLockedRef.await();
- gc.packRefs();
- packRefsDone.await();
- return null;
- }
+ pool.submit(() -> {
+ refUpdateLockedRef.await();
+ gc.packRefs();
+ packRefsDone.await();
+ return null;
});
assertSame(result.get(), Result.FORCED);
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java
index a3a302d81a..a9d0dc20e6 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java
@@ -47,7 +47,6 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
-import java.io.FilenameFilter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.MessageFormat;
@@ -167,12 +166,8 @@ public class ObjectDirectoryTest extends RepositoryTestCase {
// Bug. To show the bug we sleep for more than 2500ms
Thread.sleep(2600);
- File[] ret = packsFolder.listFiles(new FilenameFilter() {
- @Override
- public boolean accept(File dir, String name) {
- return name.endsWith(".pack");
- }
- });
+ File[] ret = packsFolder.listFiles(
+ (File dir, String name) -> name.endsWith(".pack"));
assertTrue(ret != null && ret.length == 1);
Assume.assumeTrue(tmpFile.lastModified() == ret[0].lastModified());
@@ -220,12 +215,8 @@ public class ObjectDirectoryTest extends RepositoryTestCase {
private Collection<Callable<ObjectId>> blobInsertersForTheSameFanOutDir(
final ObjectDirectory dir) {
- Callable<ObjectId> callable = new Callable<ObjectId>() {
- @Override
- public ObjectId call() throws Exception {
- return dir.newInserter().insert(Constants.OBJ_BLOB, new byte[0]);
- }
- };
+ Callable<ObjectId> callable = () -> dir.newInserter()
+ .insert(Constants.OBJ_BLOB, new byte[0]);
return Collections.nCopies(4, callable);
}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java
index ca4486256b..5d0a7e2a0b 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java
@@ -60,7 +60,6 @@ import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -881,12 +880,8 @@ public class PackWriterTest extends SampleDataRepositoryTestCase {
for (MutableEntry me : pack) {
entries.add(me.cloneEntry());
}
- Collections.sort(entries, new Comparator<PackIndex.MutableEntry>() {
- @Override
- public int compare(MutableEntry o1, MutableEntry o2) {
- return Long.signum(o1.getOffset() - o2.getOffset());
- }
- });
+ Collections.sort(entries, (MutableEntry o1, MutableEntry o2) -> Long
+ .signum(o1.getOffset() - o2.getOffset()));
int i = 0;
for (MutableEntry me : entries) {
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java
index 7b3684c865..bd9572b113 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java
@@ -70,7 +70,6 @@ import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.jgit.errors.LockFailedException;
import org.eclipse.jgit.events.ListenerHandle;
import org.eclipse.jgit.events.RefsChangedEvent;
-import org.eclipse.jgit.events.RefsChangedListener;
import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase;
import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.AnyObjectId;
@@ -570,12 +569,8 @@ public class RefDirectoryTest extends LocalDiskRepositoryTestCase {
final int[] count = new int[1];
ListenerHandle listener = Repository.getGlobalListenerList()
- .addRefsChangedListener(new RefsChangedListener() {
-
- @Override
- public void onRefsChanged(RefsChangedEvent event) {
- count[0]++;
- }
+ .addRefsChangedListener((RefsChangedEvent event) -> {
+ count[0]++;
});
refs = refdir.getRefs(RefDatabase.ALL);
@@ -1316,19 +1311,15 @@ public class RefDirectoryTest extends LocalDiskRepositoryTestCase {
final AtomicReference<StackOverflowError> error = new AtomicReference<>();
final AtomicReference<IOException> exception = new AtomicReference<>();
final AtomicInteger changeCount = new AtomicInteger();
- newRepo.getListenerList().addRefsChangedListener(
- new RefsChangedListener() {
-
- @Override
- public void onRefsChanged(RefsChangedEvent event) {
- try {
- refDb.getRefsByPrefix("ref");
- changeCount.incrementAndGet();
- } catch (StackOverflowError soe) {
- error.set(soe);
- } catch (IOException ioe) {
- exception.set(ioe);
- }
+ newRepo.getListenerList()
+ .addRefsChangedListener((RefsChangedEvent event) -> {
+ try {
+ refDb.getRefsByPrefix("ref");
+ changeCount.incrementAndGet();
+ } catch (StackOverflowError soe) {
+ error.set(soe);
+ } catch (IOException ioe) {
+ exception.set(ioe);
}
});
refDb.getRefsByPrefix("ref");
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabaseTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabaseTest.java
index 8ef21e6da7..c3f5baa67b 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabaseTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabaseTest.java
@@ -633,35 +633,23 @@ public class RefTreeDatabaseTest {
private void symref(String name, String dst)
throws IOException {
- commit(new Function() {
- @Override
- public boolean apply(ObjectReader reader, RefTree tree)
- throws IOException {
- Ref old = tree.exactRef(reader, name);
- Command n = new Command(
- old,
- new SymbolicRef(
- name,
- new ObjectIdRef.Unpeeled(Ref.Storage.NEW, dst, null)));
- return tree.apply(Collections.singleton(n));
- }
+ commit((ObjectReader reader, RefTree tree) -> {
+ Ref old = tree.exactRef(reader, name);
+ Command n = new Command(old, new SymbolicRef(name,
+ new ObjectIdRef.Unpeeled(Ref.Storage.NEW, dst, null)));
+ return tree.apply(Collections.singleton(n));
});
}
private void update(String name, ObjectId id)
throws IOException {
- commit(new Function() {
- @Override
- public boolean apply(ObjectReader reader, RefTree tree)
- throws IOException {
- Ref old = tree.exactRef(reader, name);
- Command n;
- try (RevWalk rw = new RevWalk(repo)) {
- n = new Command(old,
- Command.toRef(rw, id, null, name, true));
- }
- return tree.apply(Collections.singleton(n));
+ commit((ObjectReader reader, RefTree tree) -> {
+ Ref old = tree.exactRef(reader, name);
+ Command n;
+ try (RevWalk rw = new RevWalk(repo)) {
+ n = new Command(old, Command.toRef(rw, id, null, name, true));
}
+ return tree.apply(Collections.singleton(n));
});
}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java
index 16ad70d383..e7a5b286dd 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java
@@ -1775,16 +1775,13 @@ public class ObjectCheckerTest {
}
private static ObjectIdSet set(ObjectId... ids) {
- return new ObjectIdSet() {
- @Override
- public boolean contains(AnyObjectId objectId) {
- for (ObjectId id : ids) {
- if (id.equals(objectId)) {
- return true;
- }
+ return (AnyObjectId objectId) -> {
+ for (ObjectId id : ids) {
+ if (id.equals(objectId)) {
+ return true;
}
- return false;
}
+ return false;
};
}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ThreadSafeProgressMonitorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ThreadSafeProgressMonitorTest.java
index 545a188a98..682982226e 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ThreadSafeProgressMonitorTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ThreadSafeProgressMonitorTest.java
@@ -61,29 +61,26 @@ public class ThreadSafeProgressMonitorTest {
final MockProgressMonitor mock = new MockProgressMonitor();
final ThreadSafeProgressMonitor pm = new ThreadSafeProgressMonitor(mock);
- runOnThread(new Runnable() {
- @Override
- public void run() {
- try {
- pm.start(1);
- fail("start did not fail on background thread");
- } catch (IllegalStateException notMainThread) {
- // Expected result
- }
-
- try {
- pm.beginTask("title", 1);
- fail("beginTask did not fail on background thread");
- } catch (IllegalStateException notMainThread) {
- // Expected result
- }
-
- try {
- pm.endTask();
- fail("endTask did not fail on background thread");
- } catch (IllegalStateException notMainThread) {
- // Expected result
- }
+ runOnThread(() -> {
+ try {
+ pm.start(1);
+ fail("start did not fail on background thread");
+ } catch (IllegalStateException notMainThread) {
+ // Expected result
+ }
+
+ try {
+ pm.beginTask("title", 1);
+ fail("beginTask did not fail on background thread");
+ } catch (IllegalStateException notMainThread) {
+ // Expected result
+ }
+
+ try {
+ pm.endTask();
+ fail("endTask did not fail on background thread");
+ } catch (IllegalStateException notMainThread) {
+ // Expected result
}
});
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmapCalculatorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmapCalculatorTest.java
new file mode 100644
index 0000000000..3a78e1e623
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmapCalculatorTest.java
@@ -0,0 +1,139 @@
+package org.eclipse.jgit.revwalk;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.internal.storage.file.GC;
+import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase;
+import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.lib.BitmapIndex.BitmapBuilder;
+import org.eclipse.jgit.lib.NullProgressMonitor;
+import org.eclipse.jgit.lib.ProgressMonitor;
+import org.junit.Before;
+import org.junit.Test;
+
+public class BitmapCalculatorTest extends LocalDiskRepositoryTestCase {
+ TestRepository<FileRepository> repo;
+
+ /** {@inheritDoc} */
+ @Override
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ FileRepository db = createWorkRepository();
+ repo = new TestRepository<>(db);
+ }
+
+ @Test
+ public void addOnlyCommits() throws Exception {
+ RevBlob abBlob = repo.blob("a_b_content");
+ RevCommit root = repo.commit().add("a/b", abBlob).create();
+ repo.update("refs/heads/master", root);
+
+ // GC creates bitmap index with ALL objects
+ GC gc = new GC(repo.getRepository());
+ gc.setAuto(false);
+ gc.gc();
+
+ // These objects are not in the bitmap index.
+ RevBlob acBlob = repo.blob("a_c_content");
+ RevCommit head = repo.commit().parent(root).add("a/c", acBlob).create();
+ repo.update("refs/heads/master", head);
+
+ BitmapCalculator bitmapWalker = new BitmapCalculator(repo.getRevWalk());
+ BitmapBuilder bitmap = bitmapWalker
+ .getBitmap(head, NullProgressMonitor.INSTANCE);
+
+ assertTrue(bitmap.contains(root.getId()));
+ assertTrue(bitmap.contains(root.getTree().getId()));
+ assertTrue(bitmap.contains(abBlob.getId()));
+
+ // BitmapCalculator added only the commit, no other objects.
+ assertTrue(bitmap.contains(head.getId()));
+ assertFalse(bitmap.contains(head.getTree().getId()));
+ assertFalse(bitmap.contains(acBlob.getId()));
+ }
+
+ @Test
+ public void walkUntilBitmap() throws Exception {
+ RevCommit root = repo.commit().create();
+ repo.update("refs/heads/master", root);
+
+ // GC creates bitmap index with ALL objects
+ GC gc = new GC(repo.getRepository());
+ gc.setAuto(false);
+ gc.gc();
+
+ // These objects are not in the bitmap index.
+ RevCommit commit1 = repo.commit(root);
+ RevCommit commit2 = repo.commit(commit1);
+ repo.update("refs/heads/master", commit2);
+
+ CounterProgressMonitor monitor = new CounterProgressMonitor();
+ BitmapCalculator bitmapWalker = new BitmapCalculator(repo.getRevWalk());
+ BitmapBuilder bitmap = bitmapWalker.getBitmap(commit2, monitor);
+
+ assertTrue(bitmap.contains(root));
+ assertTrue(bitmap.contains(commit1));
+ assertTrue(bitmap.contains(commit2));
+ assertEquals(2, monitor.getUpdates());
+ }
+
+ @Test
+ public void noNeedToWalk() throws Exception {
+ RevCommit root = repo.commit().create();
+ RevCommit commit1 = repo.commit(root);
+ RevCommit commit2 = repo.commit(commit1);
+ repo.update("refs/heads/master", commit2);
+
+ // GC creates bitmap index with ALL objects
+ GC gc = new GC(repo.getRepository());
+ gc.setAuto(false);
+ gc.gc();
+
+ CounterProgressMonitor monitor = new CounterProgressMonitor();
+ BitmapCalculator bitmapWalker = new BitmapCalculator(repo.getRevWalk());
+ BitmapBuilder bitmap = bitmapWalker.getBitmap(commit2, monitor);
+
+ assertTrue(bitmap.contains(root));
+ assertTrue(bitmap.contains(commit1));
+ assertTrue(bitmap.contains(commit2));
+ assertEquals(0, monitor.getUpdates());
+ }
+
+ private static class CounterProgressMonitor implements ProgressMonitor {
+
+ private int counter;
+
+ @Override
+ public void start(int totalTasks) {
+ // Nothing to do in tests
+ }
+
+ @Override
+ public void beginTask(String title, int totalWork) {
+ // Nothing to to in tests
+ }
+
+ @Override
+ public void update(int completed) {
+ counter += 1;
+ }
+
+ @Override
+ public void endTask() {
+ // Nothing to do in tests
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return false;
+ }
+
+ int getUpdates() {
+ return counter;
+ }
+ }
+} \ No newline at end of file
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmappedReachabilityCheckerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmappedReachabilityCheckerTest.java
new file mode 100644
index 0000000000..5d3adf5eab
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmappedReachabilityCheckerTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2019, Google LLC
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Distribution License v1.0 which
+ * accompanies this distribution, is reproduced below, and is
+ * available at http://www.eclipse.org/org/documents/edl-v10.php
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * - Neither the name of the Eclipse Foundation, Inc. nor the
+ * names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.eclipse.jgit.revwalk;
+
+import static org.junit.Assert.assertNotNull;
+
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.internal.storage.file.GC;
+import org.eclipse.jgit.junit.TestRepository;
+
+public class BitmappedReachabilityCheckerTest
+ extends ReachabilityCheckerTestCase {
+
+ @Override
+ protected ReachabilityChecker getChecker(
+ TestRepository<FileRepository> repository) throws Exception {
+ // GC generates the bitmaps
+ GC gc = new GC(repo.getRepository());
+ gc.setAuto(false);
+ gc.gc();
+
+ // This is null when the test didn't create any branch
+ assertNotNull("Probably the test didn't define any ref",
+ repo.getRevWalk().getObjectReader().getBitmapIndex());
+
+ return new BitmappedReachabilityChecker(repository.getRevWalk());
+ }
+
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/PedestrianReachabilityCheckerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/PedestrianReachabilityCheckerTest.java
new file mode 100644
index 0000000000..8d3e78c1fe
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/PedestrianReachabilityCheckerTest.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2019, Google LLC.
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Distribution License v1.0 which
+ * accompanies this distribution, is reproduced below, and is
+ * available at http://www.eclipse.org/org/documents/edl-v10.php
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * - Neither the name of the Eclipse Foundation, Inc. nor the
+ * names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.eclipse.jgit.revwalk;
+
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.junit.TestRepository;
+
+public class PedestrianReachabilityCheckerTest
+ extends ReachabilityCheckerTestCase {
+
+ @Override
+ protected ReachabilityChecker getChecker(
+ TestRepository<FileRepository> repository) {
+ return new PedestrianReachabilityChecker(true, repository.getRevWalk());
+ }
+
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ReachabilityCheckerTestCase.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ReachabilityCheckerTestCase.java
new file mode 100644
index 0000000000..dd73e35727
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ReachabilityCheckerTestCase.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2019, Google LLC.
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Distribution License v1.0 which
+ * accompanies this distribution, is reproduced below, and is
+ * available at http://www.eclipse.org/org/documents/edl-v10.php
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * - Neither the name of the Eclipse Foundation, Inc. nor the
+ * names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.eclipse.jgit.revwalk;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.Optional;
+
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase;
+import org.eclipse.jgit.junit.TestRepository;
+import org.junit.Before;
+import org.junit.Test;
+
+public abstract class ReachabilityCheckerTestCase
+ extends LocalDiskRepositoryTestCase {
+
+ protected abstract ReachabilityChecker getChecker(
+ TestRepository<FileRepository> repository) throws Exception;
+
+ TestRepository<FileRepository> repo;
+
+ /** {@inheritDoc} */
+ @Override
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ FileRepository db = createWorkRepository();
+ repo = new TestRepository<>(db);
+ }
+
+ @Test
+ public void reachable() throws Exception {
+ RevCommit a = repo.commit().create();
+ RevCommit b1 = repo.commit(a);
+ RevCommit b2 = repo.commit(b1);
+ RevCommit c1 = repo.commit(a);
+ RevCommit c2 = repo.commit(c1);
+ repo.update("refs/heads/checker", b2);
+
+ ReachabilityChecker checker = getChecker(repo);
+
+ assertReachable("reachable from one tip",
+ checker.areAllReachable(Arrays.asList(a), Arrays.asList(c2)));
+ assertReachable("reachable from another tip",
+ checker.areAllReachable(Arrays.asList(a), Arrays.asList(b2)));
+ assertReachable("reachable from itself",
+ checker.areAllReachable(Arrays.asList(a), Arrays.asList(b2)));
+ }
+
+ @Test
+ public void reachable_merge() throws Exception {
+ RevCommit a = repo.commit().create();
+ RevCommit b1 = repo.commit(a);
+ RevCommit b2 = repo.commit(b1);
+ RevCommit c1 = repo.commit(a);
+ RevCommit c2 = repo.commit(c1);
+ RevCommit merge = repo.commit(c2, b2);
+ repo.update("refs/heads/checker", merge);
+
+ ReachabilityChecker checker = getChecker(repo);
+
+ assertReachable("reachable through one branch",
+ checker.areAllReachable(Arrays.asList(b1),
+ Arrays.asList(merge)));
+ assertReachable("reachable through another branch",
+ checker.areAllReachable(Arrays.asList(c1),
+ Arrays.asList(merge)));
+ assertReachable("reachable, before the branching",
+ checker.areAllReachable(Arrays.asList(a),
+ Arrays.asList(merge)));
+ }
+
+ @Test
+ public void unreachable_isLaterCommit() throws Exception {
+ RevCommit a = repo.commit().create();
+ RevCommit b1 = repo.commit(a);
+ RevCommit b2 = repo.commit(b1);
+ repo.update("refs/heads/checker", b2);
+
+ ReachabilityChecker checker = getChecker(repo);
+
+ assertUnreachable("unreachable from the future",
+ checker.areAllReachable(Arrays.asList(b2), Arrays.asList(b1)));
+ }
+
+ @Test
+ public void unreachable_differentBranch() throws Exception {
+ RevCommit a = repo.commit().create();
+ RevCommit b1 = repo.commit(a);
+ RevCommit b2 = repo.commit(b1);
+ RevCommit c1 = repo.commit(a);
+ repo.update("refs/heads/checker", b2);
+
+ ReachabilityChecker checker = getChecker(repo);
+
+ assertUnreachable("unreachable from different branch",
+ checker.areAllReachable(Arrays.asList(c1), Arrays.asList(b2)));
+ }
+
+ @Test
+ public void reachable_longChain() throws Exception {
+ RevCommit root = repo.commit().create();
+ RevCommit head = root;
+ for (int i = 0; i < 10000; i++) {
+ head = repo.commit(head);
+ }
+ repo.update("refs/heads/master", head);
+
+ ReachabilityChecker checker = getChecker(repo);
+
+ assertReachable("reachable with long chain in the middle", checker
+ .areAllReachable(Arrays.asList(root), Arrays.asList(head)));
+ }
+
+ private static void assertReachable(String msg,
+ Optional<RevCommit> result) {
+ assertFalse(msg, result.isPresent());
+ }
+
+ private static void assertUnreachable(String msg,
+ Optional<RevCommit> result) {
+ assertTrue(msg, result.isPresent());
+ }
+
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushConnectionTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushConnectionTest.java
index cea432e34c..89d02d7527 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushConnectionTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushConnectionTest.java
@@ -67,9 +67,6 @@ import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectInserter;
import org.eclipse.jgit.lib.RefUpdate;
import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.transport.resolver.ReceivePackFactory;
-import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
-import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -91,27 +88,16 @@ public class PushConnectionTest {
server = newRepo("server");
client = newRepo("client");
processedRefs = new ArrayList<>();
- testProtocol = new TestProtocol<>(
- null,
- new ReceivePackFactory<Object>() {
- @Override
- public ReceivePack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- ReceivePack rp = new ReceivePack(db);
- rp.setPreReceiveHook(
- new PreReceiveHook() {
- @Override
- public void onPreReceive(ReceivePack receivePack,
- Collection<ReceiveCommand> cmds) {
- for (ReceiveCommand cmd : cmds) {
- processedRefs.add(cmd.getRefName());
- }
- }
- });
- return rp;
- }
- });
+ testProtocol = new TestProtocol<>(null, (Object req, Repository db) -> {
+ ReceivePack rp = new ReceivePack(db);
+ rp.setPreReceiveHook((ReceivePack receivePack,
+ Collection<ReceiveCommand> cmds) -> {
+ for (ReceiveCommand cmd : cmds) {
+ processedRefs.add(cmd.getRefName());
+ }
+ });
+ return rp;
+ });
uri = testProtocol.register(ctx, server);
try (ObjectInserter ins = server.newObjectInserter()) {
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushOptionsTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushOptionsTest.java
index f26201d56d..fd1c3bf8b8 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushOptionsTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushOptionsTest.java
@@ -69,9 +69,6 @@ import org.eclipse.jgit.lib.ObjectInserter;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevCommit;
-import org.eclipse.jgit.transport.resolver.ReceivePackFactory;
-import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
-import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -95,16 +92,11 @@ public class PushOptionsTest extends RepositoryTestCase {
client = newRepo("client");
testProtocol = new TestProtocol<>(null,
- new ReceivePackFactory<Object>() {
- @Override
- public ReceivePack create(Object req, Repository git)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- receivePack = new ReceivePack(git);
- receivePack.setAllowPushOptions(true);
- receivePack.setAtomic(true);
- return receivePack;
- }
+ (Object req, Repository git) -> {
+ receivePack = new ReceivePack(git);
+ receivePack.setAllowPushOptions(true);
+ receivePack.setAtomic(true);
+ return receivePack;
});
uri = testProtocol.register(ctx, server);
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TestProtocolTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TestProtocolTest.java
index 1c4d0cfe24..f4c55aa50a 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TestProtocolTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TestProtocolTest.java
@@ -92,11 +92,8 @@ public class TestProtocolTest {
@Override
public UploadPack create(User req, Repository db) {
UploadPack up = new UploadPack(db);
- up.setPostUploadHook(new PostUploadHook() {
- @Override
- public void onPostUpload(PackStatistics stats) {
- havesCount = stats.getHaves();
- }
+ up.setPostUploadHook((PackStatistics stats) -> {
+ havesCount = stats.getHaves();
});
return up;
}
@@ -217,16 +214,12 @@ public class TestProtocolTest {
ObjectId master = remote.branch("master").commit().create();
final AtomicInteger rejected = new AtomicInteger();
- TestProtocol<User> proto = registerProto(new UploadPackFactory<User>() {
- @Override
- public UploadPack create(User req, Repository db)
- throws ServiceNotAuthorizedException {
- if (!"user2".equals(req.name)) {
- rejected.incrementAndGet();
- throw new ServiceNotAuthorizedException();
- }
- return new UploadPack(db);
+ TestProtocol<User> proto = registerProto((User req, Repository db) -> {
+ if (!"user2".equals(req.name)) {
+ rejected.incrementAndGet();
+ throw new ServiceNotAuthorizedException();
}
+ return new UploadPack(db);
}, new DefaultReceive());
// Same repository, different users.
@@ -262,16 +255,12 @@ public class TestProtocolTest {
final AtomicInteger rejected = new AtomicInteger();
TestProtocol<User> proto = registerProto(new DefaultUpload(),
- new ReceivePackFactory<User>() {
- @Override
- public ReceivePack create(User req, Repository db)
- throws ServiceNotAuthorizedException {
- if (!"user2".equals(req.name)) {
- rejected.incrementAndGet();
- throw new ServiceNotAuthorizedException();
- }
- return new ReceivePack(db);
+ (User req, Repository db) -> {
+ if (!"user2".equals(req.name)) {
+ rejected.incrementAndGet();
+ throw new ServiceNotAuthorizedException();
}
+ return new ReceivePack(db);
});
// Same repository, different users.
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
index 9fd7483787..9ffcbccc8f 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
@@ -47,9 +47,6 @@ import org.eclipse.jgit.revwalk.RevTag;
import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.storage.pack.PackStatistics;
import org.eclipse.jgit.transport.UploadPack.RequestPolicy;
-import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
-import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
-import org.eclipse.jgit.transport.resolver.UploadPackFactory;
import org.eclipse.jgit.util.io.NullOutputStream;
import org.hamcrest.Matchers;
import org.junit.After;
@@ -102,17 +99,11 @@ public class UploadPackTest {
}
private static TestProtocol<Object> generateReachableCommitUploadPackProtocol() {
- return new TestProtocol<>(
- new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- up.setRequestPolicy(RequestPolicy.REACHABLE_COMMIT);
- return up;
- }
- }, null);
+ return new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ up.setRequestPolicy(RequestPolicy.REACHABLE_COMMIT);
+ return up;
+ }, null);
}
@Test
@@ -122,20 +113,14 @@ public class UploadPackTest {
RevCommit tip = remote.commit().message("2").parent(commit1).create();
remote.update("master", tip);
- testProtocol = new TestProtocol<>(
- new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- up.setRequestPolicy(RequestPolicy.REACHABLE_COMMIT);
- // assume client has a shallow commit
- up.getRevWalk().assumeShallow(
- Collections.singleton(commit1.getId()));
- return up;
- }
- }, null);
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ up.setRequestPolicy(RequestPolicy.REACHABLE_COMMIT);
+ // assume client has a shallow commit
+ up.getRevWalk()
+ .assumeShallow(Collections.singleton(commit1.getId()));
+ return up;
+ }, null);
uri = testProtocol.register(ctx, server);
assertFalse(client.getObjectDatabase().has(commit0.toObjectId()));
@@ -222,14 +207,9 @@ public class UploadPackTest {
server2.getConfig().setBoolean("uploadpack", null, "allowfilter",
true);
- testProtocol = new TestProtocol<>(new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- return up;
- }
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ return up;
}, null);
uri = testProtocol.register(ctx, server2);
@@ -260,14 +240,9 @@ public class UploadPackTest {
server2.getConfig().setBoolean("uploadpack", null, "allowfilter",
true);
- testProtocol = new TestProtocol<>(new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- return up;
- }
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ return up;
}, null);
uri = testProtocol.register(ctx, server2);
@@ -297,14 +272,9 @@ public class UploadPackTest {
server2.getConfig().setBoolean("uploadpack", null, "allowfilter",
true);
- testProtocol = new TestProtocol<>(new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- return up;
- }
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ return up;
}, null);
uri = testProtocol.register(ctx, server2);
@@ -340,14 +310,9 @@ public class UploadPackTest {
new DfsGarbageCollector(server2).pack(null);
server2.scanForRepoChanges();
- testProtocol = new TestProtocol<>(new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- return up;
- }
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ return up;
}, null);
uri = testProtocol.register(ctx, server2);
@@ -380,14 +345,9 @@ public class UploadPackTest {
new DfsGarbageCollector(server2).pack(null);
server2.scanForRepoChanges();
- testProtocol = new TestProtocol<>(new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- return up;
- }
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ return up;
}, null);
uri = testProtocol.register(ctx, server2);
@@ -416,14 +376,9 @@ public class UploadPackTest {
server2.getConfig().setBoolean("uploadpack", null, "allowfilter",
false);
- testProtocol = new TestProtocol<>(new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- return up;
- }
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ return up;
}, null);
uri = testProtocol.register(ctx, server2);
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java
index 6f61912f2b..0303ea2404 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java
@@ -582,26 +582,23 @@ public class FileTreeIteratorTest extends RepositoryTestCase {
}
}
- private final FileTreeIterator.FileModeStrategy NO_GITLINKS_STRATEGY =
- new FileTreeIterator.FileModeStrategy() {
- @Override
- public FileMode getMode(File f, FS.Attributes attributes) {
- if (attributes.isSymbolicLink()) {
- return FileMode.SYMLINK;
- } else if (attributes.isDirectory()) {
- // NOTE: in the production DefaultFileModeStrategy, there is
- // a check here for a subdirectory called '.git', and if it
- // exists, we create a GITLINK instead of recursing into the
- // tree. In this custom strategy, we ignore nested git dirs
- // and treat all directories the same.
- return FileMode.TREE;
- } else if (attributes.isExecutable()) {
- return FileMode.EXECUTABLE_FILE;
- } else {
- return FileMode.REGULAR_FILE;
- }
- }
- };
+ private final FileTreeIterator.FileModeStrategy NO_GITLINKS_STRATEGY = (
+ File f, FS.Attributes attributes) -> {
+ if (attributes.isSymbolicLink()) {
+ return FileMode.SYMLINK;
+ } else if (attributes.isDirectory()) {
+ // NOTE: in the production DefaultFileModeStrategy, there is
+ // a check here for a subdirectory called '.git', and if it
+ // exists, we create a GITLINK instead of recursing into the
+ // tree. In this custom strategy, we ignore nested git dirs
+ // and treat all directories the same.
+ return FileMode.TREE;
+ } else if (attributes.isExecutable()) {
+ return FileMode.EXECUTABLE_FILE;
+ } else {
+ return FileMode.REGULAR_FILE;
+ }
+ };
private Repository createNestedRepo() throws IOException {
File gitdir = createUniqueTestGitDir(false);
diff --git a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
index 9d221c92f9..fc2a26f0d7 100644
--- a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
+++ b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
@@ -330,6 +330,7 @@ gpgNoKeyring=neither pubring.kbx nor secring.gpg files found
gpgNoKeyInLegacySecring=no matching secret key found in legacy secring.gpg for key or user id: {0}
gpgNoPublicKeyFound=Unable to find a public-key with key or user id: {0}
gpgNoSecretKeyForPublicKey=unable to find associated secret key for public key: {0}
+gpgNotASigningKey=Secret key ({0}) is not suitable for signing
gpgKeyInfo=GPG Key (fingerprint {0})
gpgSigningCancelled=Signing was cancelled
headRequiredToStash=HEAD required to stash local changes
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/DescribeCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/DescribeCommand.java
index 831865a2db..9ebcf9fd0f 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/DescribeCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/DescribeCommand.java
@@ -402,12 +402,8 @@ public class DescribeCommand extends GitCommand<String> {
if (candidates.isEmpty())
return null;
- Candidate best = Collections.min(candidates, new Comparator<Candidate>() {
- @Override
- public int compare(Candidate o1, Candidate o2) {
- return o1.depth - o2.depth;
- }
- });
+ Candidate best = Collections.min(candidates,
+ (Candidate o1, Candidate o2) -> o1.depth - o2.depth);
return best.describe(target);
} catch (IOException e) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/ListBranchCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/ListBranchCommand.java
index 29a51a0f02..e0eafc7533 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/ListBranchCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/ListBranchCommand.java
@@ -53,7 +53,6 @@ import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import org.eclipse.jgit.api.errors.GitAPIException;
@@ -134,12 +133,8 @@ public class ListBranchCommand extends GitCommand<List<Ref>> {
throw new JGitInternalException(e.getMessage(), e);
}
- Collections.sort(resultRefs, new Comparator<Ref>() {
- @Override
- public int compare(Ref o1, Ref o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
+ Collections.sort(resultRefs,
+ (Ref o1, Ref o2) -> o1.getName().compareTo(o2.getName()));
setCallable(false);
return resultRefs;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java
index 01c1991846..c894d056a0 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java
@@ -45,7 +45,6 @@ package org.eclipse.jgit.api;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import org.eclipse.jgit.api.errors.GitAPIException;
@@ -87,12 +86,8 @@ public class ListTagCommand extends GitCommand<List<Ref>> {
} catch (IOException e) {
throw new JGitInternalException(e.getMessage(), e);
}
- Collections.sort(tags, new Comparator<Ref>() {
- @Override
- public int compare(Ref o1, Ref o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
+ Collections.sort(tags,
+ (Ref o1, Ref o2) -> o1.getName().compareTo(o2.getName()));
setCallable(false);
return tags;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java
index 667634f7f8..eeab03d011 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java
@@ -111,14 +111,12 @@ public class DirCache {
private static final byte[] NO_CHECKSUM = {};
- static final Comparator<DirCacheEntry> ENT_CMP = new Comparator<DirCacheEntry>() {
- @Override
- public int compare(DirCacheEntry o1, DirCacheEntry o2) {
- final int cr = cmp(o1, o2);
- if (cr != 0)
- return cr;
- return o1.getStage() - o2.getStage();
- }
+ static final Comparator<DirCacheEntry> ENT_CMP = (DirCacheEntry o1,
+ DirCacheEntry o2) -> {
+ final int cr = cmp(o1, o2);
+ if (cr != 0)
+ return cr;
+ return o1.getStage() - o2.getStage();
};
static int cmp(DirCacheEntry a, DirCacheEntry b) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEditor.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEditor.java
index 74ba97fb8d..5b8e11f330 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEditor.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEditor.java
@@ -75,13 +75,11 @@ import org.eclipse.jgit.util.Paths;
* @see DirCacheBuilder
*/
public class DirCacheEditor extends BaseDirCacheEditor {
- private static final Comparator<PathEdit> EDIT_CMP = new Comparator<PathEdit>() {
- @Override
- public int compare(PathEdit o1, PathEdit o2) {
- final byte[] a = o1.path;
- final byte[] b = o2.path;
- return cmp(a, a.length, b, b.length);
- }
+ private static final Comparator<PathEdit> EDIT_CMP = (PathEdit o1,
+ PathEdit o2) -> {
+ final byte[] a = o1.path;
+ final byte[] b = o2.path;
+ return cmp(a, a.length, b, b.length);
};
private final List<PathEdit> edits;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheTree.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheTree.java
index 11a3474a35..80e1084fe0 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheTree.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheTree.java
@@ -81,25 +81,26 @@ public class DirCacheTree {
private static final DirCacheTree[] NO_CHILDREN = {};
- private static final Comparator<DirCacheTree> TREE_CMP = new Comparator<DirCacheTree>() {
- @Override
- public int compare(DirCacheTree o1, DirCacheTree o2) {
- final byte[] a = o1.encodedName;
- final byte[] b = o2.encodedName;
- final int aLen = a.length;
- final int bLen = b.length;
- int cPos;
- for (cPos = 0; cPos < aLen && cPos < bLen; cPos++) {
- final int cmp = (a[cPos] & 0xff) - (b[cPos] & 0xff);
- if (cmp != 0)
- return cmp;
+ private static final Comparator<DirCacheTree> TREE_CMP = (DirCacheTree o1,
+ DirCacheTree o2) -> {
+ final byte[] a = o1.encodedName;
+ final byte[] b = o2.encodedName;
+ final int aLen = a.length;
+ final int bLen = b.length;
+ int cPos;
+ for (cPos = 0; cPos < aLen && cPos < bLen; cPos++) {
+ final int cmp = (a[cPos] & 0xff) - (b[cPos] & 0xff);
+ if (cmp != 0) {
+ return cmp;
}
- if (aLen == bLen)
- return 0;
- if (aLen < bLen)
- return '/' - (b[cPos] & 0xff);
- return (a[cPos] & 0xff) - '/';
}
+ if (aLen == bLen) {
+ return 0;
+ }
+ if (aLen < bLen) {
+ return '/' - (b[cPos] & 0xff);
+ }
+ return (a[cPos] & 0xff) - '/';
};
/** Tree this tree resides in; null if we are the root. */
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
index 018b6431c1..ca0024d1c9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
@@ -391,6 +391,7 @@ public class JGitText extends TranslationBundle {
/***/ public String gpgNoKeyInLegacySecring;
/***/ public String gpgNoPublicKeyFound;
/***/ public String gpgNoSecretKeyForPublicKey;
+ /***/ public String gpgNotASigningKey;
/***/ public String gpgKeyInfo;
/***/ public String gpgSigningCancelled;
/***/ public String headRequiredToStash;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java
index fa32b267df..c0364acdd1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java
@@ -385,12 +385,7 @@ public abstract class KetchLeader {
private void scheduleLeader() {
idle = false;
- system.getExecutor().execute(new Runnable() {
- @Override
- public void run() {
- runLeader();
- }
- });
+ system.getExecutor().execute(this::runLeader);
}
private void runLeader() {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LocalReplica.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LocalReplica.java
index 6f1f5c5c2c..cd0ded5e38 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LocalReplica.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LocalReplica.java
@@ -123,21 +123,18 @@ public class LocalReplica extends KetchReplica {
/** {@inheritDoc} */
@Override
protected void startPush(ReplicaPushRequest req) {
- getSystem().getExecutor().execute(new Runnable() {
- @Override
- public void run() {
- MonotonicClock clk = getSystem().getClock();
- try (Repository git = getLeader().openRepository();
- ProposedTimestamp ts = clk.propose()) {
- try {
- update(git, req, ts);
- req.done(git);
- } catch (Throwable err) {
- req.setException(git, err);
- }
- } catch (IOException err) {
- req.setException(null, err);
+ getSystem().getExecutor().execute(() -> {
+ MonotonicClock clk = getSystem().getClock();
+ try (Repository git = getLeader().openRepository();
+ ProposedTimestamp ts = clk.propose()) {
+ try {
+ update(git, req, ts);
+ req.done(git);
+ } catch (Throwable err) {
+ req.setException(git, err);
}
+ } catch (IOException err) {
+ req.setException(null, err);
}
});
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/RemoteGitReplica.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/RemoteGitReplica.java
index b61274ef4a..3c9b187c47 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/RemoteGitReplica.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/RemoteGitReplica.java
@@ -139,19 +139,16 @@ public class RemoteGitReplica extends KetchReplica {
/** {@inheritDoc} */
@Override
protected void startPush(ReplicaPushRequest req) {
- getSystem().getExecutor().execute(new Runnable() {
- @Override
- public void run() {
- try (Repository git = getLeader().openRepository()) {
- try {
- push(git, req);
- req.done(git);
- } catch (Throwable err) {
- req.setException(git, err);
- }
- } catch (IOException err) {
- req.setException(null, err);
+ getSystem().getExecutor().execute(() -> {
+ try (Repository git = getLeader().openRepository()) {
+ try {
+ push(git, req);
+ req.done(git);
+ } catch (Throwable err) {
+ req.setException(git, err);
}
+ } catch (IOException err) {
+ req.setException(null, err);
}
});
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java
index 127ee6bf11..6f3f2bd8e7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java
@@ -469,12 +469,8 @@ public class DfsPackCompactor {
continue SCAN;
want.add(new ObjectIdWithOffset(id, ent.getOffset()));
}
- Collections.sort(want, new Comparator<ObjectIdWithOffset>() {
- @Override
- public int compare(ObjectIdWithOffset a, ObjectIdWithOffset b) {
- return Long.signum(a.offset - b.offset);
- }
- });
+ Collections.sort(want, (ObjectIdWithOffset a,
+ ObjectIdWithOffset b) -> Long.signum(a.offset - b.offset));
return want;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
index 1a5553d7a8..c75b88f3bd 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
@@ -287,14 +287,12 @@ public class DfsReader extends ObjectReader implements ObjectReuseAsIs {
return Collections.emptySet();
}
- private static final Comparator<FoundObject<?>> FOUND_OBJECT_SORT = new Comparator<FoundObject<?>>() {
- @Override
- public int compare(FoundObject<?> a, FoundObject<?> b) {
- int cmp = a.packIndex - b.packIndex;
- if (cmp == 0)
- cmp = Long.signum(a.offset - b.offset);
- return cmp;
- }
+ private static final Comparator<FoundObject<?>> FOUND_OBJECT_SORT = (
+ FoundObject<?> a, FoundObject<?> b) -> {
+ int cmp = a.packIndex - b.packIndex;
+ if (cmp == 0)
+ cmp = Long.signum(a.offset - b.offset);
+ return cmp;
};
private static class FoundObject<T extends ObjectId> {
@@ -565,12 +563,9 @@ public class DfsReader extends ObjectReader implements ObjectReuseAsIs {
return new DfsObjectToPack(objectId, type);
}
- private static final Comparator<DfsObjectToPack> OFFSET_SORT = new Comparator<DfsObjectToPack>() {
- @Override
- public int compare(DfsObjectToPack a, DfsObjectToPack b) {
- return Long.signum(a.getOffset() - b.getOffset());
- }
- };
+ private static final Comparator<DfsObjectToPack> OFFSET_SORT = (
+ DfsObjectToPack a,
+ DfsObjectToPack b) -> Long.signum(a.getOffset() - b.getOffset());
@Override
public void selectObjectRepresentation(PackWriter packer,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
index 5ced68646f..d82d29e4cf 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
@@ -62,8 +62,6 @@ import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.attributes.AttributesNode;
import org.eclipse.jgit.attributes.AttributesNodeProvider;
import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.events.ConfigChangedEvent;
-import org.eclipse.jgit.events.ConfigChangedListener;
import org.eclipse.jgit.events.IndexChangedEvent;
import org.eclipse.jgit.internal.JGitText;
import org.eclipse.jgit.internal.storage.file.ObjectDirectory.AlternateHandle;
@@ -206,12 +204,7 @@ public class FileRepository extends Repository {
loadUserConfig();
loadRepoConfig();
- repoConfig.addChangeListener(new ConfigChangedListener() {
- @Override
- public void onConfigChanged(ConfigChangedEvent event) {
- fireEvent(event);
- }
- });
+ repoConfig.addChangeListener(this::fireEvent);
final long repositoryFormatVersion = getConfig().getLong(
ConfigConstants.CONFIG_CORE_SECTION, null,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java
index f0ee22d57a..a4fc1a2ac4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java
@@ -116,12 +116,8 @@ public class LockFile {
}
/** Filter to skip over active lock files when listing a directory. */
- static final FilenameFilter FILTER = new FilenameFilter() {
- @Override
- public boolean accept(File dir, String name) {
- return !name.endsWith(LOCK_SUFFIX);
- }
- };
+ static final FilenameFilter FILTER = (File dir,
+ String name) -> !name.endsWith(LOCK_SUFFIX);
private final File ref;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexBuilder.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexBuilder.java
index eff7958748..9941ff3740 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexBuilder.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexBuilder.java
@@ -45,7 +45,6 @@ package org.eclipse.jgit.internal.storage.file;
import java.text.MessageFormat;
import java.util.Collections;
-import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
@@ -133,12 +132,8 @@ public class PackBitmapIndexBuilder extends BasePackBitmapIndex {
for (int i = 0; i < entries.size(); i++) {
positionEntries.add(new PositionEntry(entries.get(i), i));
}
- Collections.sort(entries, new Comparator<ObjectToPack>() {
- @Override
- public int compare(ObjectToPack a, ObjectToPack b) {
- return Long.signum(a.getOffset() - b.getOffset());
- }
- });
+ Collections.sort(entries, (ObjectToPack a, ObjectToPack b) -> Long
+ .signum(a.getOffset() - b.getOffset()));
for (int i = 0; i < entries.size(); i++) {
PositionEntry e = positionEntries.get(entries.get(i));
e.offsetPosition = i;
@@ -310,57 +305,55 @@ public class PackBitmapIndexBuilder extends BasePackBitmapIndex {
public Iterable<StoredEntry> getCompressedBitmaps() {
// Add order is from oldest to newest. The reverse add order is the
// output order.
- return new Iterable<StoredEntry>() {
+ return () -> new Iterator<StoredEntry>() {
+
+ private int index = byAddOrder.size() - 1;
+
@Override
- public Iterator<StoredEntry> iterator() {
- return new Iterator<StoredEntry>() {
- private int index = byAddOrder.size() - 1;
+ public boolean hasNext() {
+ return index >= 0;
+ }
- @Override
- public boolean hasNext() {
- return index >= 0;
+ @Override
+ public StoredEntry next() {
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ StoredBitmap item = byAddOrder.get(index);
+ int bestXorOffset = 0;
+ EWAHCompressedBitmap bestBitmap = item.getBitmap();
+
+ // Attempt to compress the bitmap with an XOR of the
+ // previously written entries.
+ for (int i = 1; i <= MAX_XOR_OFFSET_SEARCH; i++) {
+ int curr = i + index;
+ if (curr >= byAddOrder.size()) {
+ break;
}
- @Override
- public StoredEntry next() {
- if (!hasNext())
- throw new NoSuchElementException();
- StoredBitmap item = byAddOrder.get(index);
- int bestXorOffset = 0;
- EWAHCompressedBitmap bestBitmap = item.getBitmap();
-
- // Attempt to compress the bitmap with an XOR of the
- // previously written entries.
- for (int i = 1; i <= MAX_XOR_OFFSET_SEARCH; i++) {
- int curr = i + index;
- if (curr >= byAddOrder.size())
- break;
-
- StoredBitmap other = byAddOrder.get(curr);
- EWAHCompressedBitmap bitmap = other.getBitmap()
- .xor(item.getBitmap());
-
- if (bitmap.sizeInBytes()
- < bestBitmap.sizeInBytes()) {
- bestBitmap = bitmap;
- bestXorOffset = i;
- }
- }
- index--;
-
- PositionEntry entry = positionEntries.get(item);
- if (entry == null)
- throw new IllegalStateException();
- bestBitmap.trim();
- return new StoredEntry(entry.namePosition, bestBitmap,
- bestXorOffset, item.getFlags());
- }
+ StoredBitmap other = byAddOrder.get(curr);
+ EWAHCompressedBitmap bitmap = other.getBitmap()
+ .xor(item.getBitmap());
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
+ if (bitmap.sizeInBytes() < bestBitmap.sizeInBytes()) {
+ bestBitmap = bitmap;
+ bestXorOffset = i;
}
- };
+ }
+ index--;
+
+ PositionEntry entry = positionEntries.get(item);
+ if (entry == null) {
+ throw new IllegalStateException();
+ }
+ bestBitmap.trim();
+ return new StoredEntry(entry.namePosition, bestBitmap,
+ bestXorOffset, item.getFlags());
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
}
};
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
index d834b1a729..c1aac23726 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
@@ -101,12 +101,8 @@ import org.eclipse.jgit.util.RawParseUtils;
*/
public class PackFile implements Iterable<PackIndex.MutableEntry> {
/** Sorts PackFiles to be most recently created to least recently created. */
- public static final Comparator<PackFile> SORT = new Comparator<PackFile>() {
- @Override
- public int compare(PackFile a, PackFile b) {
- return b.packLastModified - a.packLastModified;
- }
- };
+ public static final Comparator<PackFile> SORT = (PackFile a,
+ PackFile b) -> b.packLastModified - a.packLastModified;
private final File packFile;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaTask.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaTask.java
index 0347644324..a211d164c4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaTask.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaTask.java
@@ -46,7 +46,6 @@ package org.eclipse.jgit.internal.storage.pack;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -212,12 +211,8 @@ final class DeltaTask implements Callable<Object> {
}
// Sort by starting index to identify gaps later.
- Collections.sort(topPaths, new Comparator<WeightedPath>() {
- @Override
- public int compare(WeightedPath a, WeightedPath b) {
- return a.slice.beginIndex - b.slice.beginIndex;
- }
- });
+ Collections.sort(topPaths, (WeightedPath a,
+ WeightedPath b) -> a.slice.beginIndex - b.slice.beginIndex);
bytesPerUnit = 1;
while (MAX_METER <= (totalWeight / bytesPerUnit)) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
index b6e6a6c497..2f7e1a656a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
@@ -62,7 +62,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -1418,32 +1417,33 @@ public class PackWriter implements AutoCloseable {
// applies "Linus' Law" which states that newer files tend to be the
// bigger ones, because source files grow and hardly ever shrink.
//
- Arrays.sort(list, 0, cnt, new Comparator<ObjectToPack>() {
- @Override
- public int compare(ObjectToPack a, ObjectToPack b) {
- int cmp = (a.isDoNotDelta() ? 1 : 0)
- - (b.isDoNotDelta() ? 1 : 0);
- if (cmp != 0)
- return cmp;
-
- cmp = a.getType() - b.getType();
- if (cmp != 0)
- return cmp;
-
- cmp = (a.getPathHash() >>> 1) - (b.getPathHash() >>> 1);
- if (cmp != 0)
- return cmp;
-
- cmp = (a.getPathHash() & 1) - (b.getPathHash() & 1);
- if (cmp != 0)
- return cmp;
-
- cmp = (a.isEdge() ? 0 : 1) - (b.isEdge() ? 0 : 1);
- if (cmp != 0)
- return cmp;
-
- return b.getWeight() - a.getWeight();
+ Arrays.sort(list, 0, cnt, (ObjectToPack a, ObjectToPack b) -> {
+ int cmp = (a.isDoNotDelta() ? 1 : 0) - (b.isDoNotDelta() ? 1 : 0);
+ if (cmp != 0) {
+ return cmp;
}
+
+ cmp = a.getType() - b.getType();
+ if (cmp != 0) {
+ return cmp;
+ }
+
+ cmp = (a.getPathHash() >>> 1) - (b.getPathHash() >>> 1);
+ if (cmp != 0) {
+ return cmp;
+ }
+
+ cmp = (a.getPathHash() & 1) - (b.getPathHash() & 1);
+ if (cmp != 0) {
+ return cmp;
+ }
+
+ cmp = (a.isEdge() ? 0 : 1) - (b.isEdge() ? 0 : 1);
+ if (cmp != 0) {
+ return cmp;
+ }
+
+ return b.getWeight() - a.getWeight();
});
// Above we stored the objects we cannot delta onto the end.
@@ -1564,14 +1564,11 @@ public class PackWriter implements AutoCloseable {
// asynchronous execution. Wrap everything and hope it
// can schedule these for us.
for (DeltaTask task : taskBlock.tasks) {
- executor.execute(new Runnable() {
- @Override
- public void run() {
- try {
- task.call();
- } catch (Throwable failure) {
- errors.add(failure);
- }
+ executor.execute(() -> {
+ try {
+ task.call();
+ } catch (Throwable failure) {
+ errors.add(failure);
}
});
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
index 99db74956c..d3b5e128d1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
@@ -91,12 +91,9 @@ class PackWriterBitmapPreparer {
private static final int DAY_IN_SECONDS = 24 * 60 * 60;
- private static final Comparator<RevCommit> ORDER_BY_REVERSE_TIMESTAMP = new Comparator<RevCommit>() {
- @Override
- public int compare(RevCommit a, RevCommit b) {
- return Integer.signum(b.getCommitTime() - a.getCommitTime());
- }
- };
+ private static final Comparator<RevCommit> ORDER_BY_REVERSE_TIMESTAMP = (
+ RevCommit a, RevCommit b) -> Integer
+ .signum(b.getCommitTime() - a.getCommitTime());
private final ObjectReader reader;
private final ProgressMonitor pm;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java
index f37c310752..42d1330af9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java
@@ -352,12 +352,7 @@ public class IndexDiff {
public WorkingTreeIterator getWorkingTreeIterator(Repository repo);
}
- private WorkingTreeIteratorFactory wTreeIt = new WorkingTreeIteratorFactory() {
- @Override
- public WorkingTreeIterator getWorkingTreeIterator(Repository repo) {
- return new FileTreeIterator(repo);
- }
- };
+ private WorkingTreeIteratorFactory wTreeIt = FileTreeIterator::new;
/**
* Allows higher layers to set the factory for WorkingTreeIterators.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
index b242f98ef7..aac63e9d24 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
@@ -1277,11 +1277,8 @@ public abstract class Repository implements AutoCloseable {
CorruptObjectException, IOException {
// we want DirCache to inform us so that we can inform registered
// listeners about index changes
- IndexChangedListener l = new IndexChangedListener() {
- @Override
- public void onIndexChanged(IndexChangedEvent event) {
- notifyIndexChanged(true);
- }
+ IndexChangedListener l = (IndexChangedEvent event) -> {
+ notifyIndexChanged(true);
};
return DirCache.lock(this, l);
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java
index 400342b1bd..27befba5a4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java
@@ -255,14 +255,11 @@ public class RepositoryCache {
if (delay == RepositoryCacheConfig.NO_CLEANUP) {
return;
}
- cleanupTask = scheduler.scheduleWithFixedDelay(new Runnable() {
- @Override
- public void run() {
- try {
- cache.clearAllExpired();
- } catch (Throwable e) {
- LOG.error(e.getMessage(), e);
- }
+ cleanupTask = scheduler.scheduleWithFixedDelay(() -> {
+ try {
+ cache.clearAllExpired();
+ } catch (Throwable e) {
+ LOG.error(e.getMessage(), e);
}
}, delay, delay, TimeUnit.MILLISECONDS);
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/internal/BouncyCastleGpgKeyLocator.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/internal/BouncyCastleGpgKeyLocator.java
index c942cf403d..df9615fc9d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/internal/BouncyCastleGpgKeyLocator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/internal/BouncyCastleGpgKeyLocator.java
@@ -181,10 +181,11 @@ class BouncyCastleGpgKeyLocator {
private PGPPublicKey findPublicKeyByKeyId(KeyBlob keyBlob)
throws IOException {
+ String keyId = signingKey.toLowerCase(Locale.ROOT);
for (KeyInformation keyInfo : keyBlob.getKeyInformation()) {
- if (signingKey.toLowerCase(Locale.ROOT)
- .equals(Hex.toHexString(keyInfo.getKeyID())
- .toLowerCase(Locale.ROOT))) {
+ String fingerprint = Hex.toHexString(keyInfo.getFingerprint())
+ .toLowerCase(Locale.ROOT);
+ if (fingerprint.endsWith(keyId)) {
return getFirstPublicKey(keyBlob);
}
}
@@ -260,6 +261,10 @@ class BouncyCastleGpgKeyLocator {
USER_PGP_LEGACY_SECRING_FILE);
if (secretKey != null) {
+ if (!secretKey.isSigningKey()) {
+ throw new PGPException(MessageFormat.format(
+ JGitText.get().gpgNotASigningKey, signingKey));
+ }
return new BouncyCastleGpgKey(secretKey, USER_PGP_LEGACY_SECRING_FILE);
}
@@ -293,6 +298,10 @@ class BouncyCastleGpgKeyLocator {
PGPSecretKey secretKey = attemptParseSecretKey(keyFile,
calculatorProvider, passphraseProvider, publicKey);
if (secretKey != null) {
+ if (!secretKey.isSigningKey()) {
+ throw new PGPException(MessageFormat.format(
+ JGitText.get().gpgNotASigningKey, signingKey));
+ }
return new BouncyCastleGpgKey(secretKey, userKeyboxPath);
}
}
@@ -334,6 +343,7 @@ class BouncyCastleGpgKeyLocator {
PGPUtil.getDecoderStream(new BufferedInputStream(in)),
new JcaKeyFingerprintCalculator());
+ String keyId = signingkey.toLowerCase(Locale.ROOT);
Iterator<PGPSecretKeyRing> keyrings = pgpSec.getKeyRings();
while (keyrings.hasNext()) {
PGPSecretKeyRing keyRing = keyrings.next();
@@ -344,8 +354,7 @@ class BouncyCastleGpgKeyLocator {
String fingerprint = Hex
.toHexString(key.getPublicKey().getFingerprint())
.toLowerCase(Locale.ROOT);
- if (fingerprint
- .endsWith(signingkey.toLowerCase(Locale.ROOT))) {
+ if (fingerprint.endsWith(keyId)) {
return key;
}
// try user id
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/BitmapCalculator.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/BitmapCalculator.java
new file mode 100644
index 0000000000..e1d5d4adad
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/BitmapCalculator.java
@@ -0,0 +1,93 @@
+package org.eclipse.jgit.revwalk;
+
+import static java.util.Objects.requireNonNull;
+
+import java.io.IOException;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+import org.eclipse.jgit.internal.revwalk.AddToBitmapFilter;
+import org.eclipse.jgit.lib.BitmapIndex;
+import org.eclipse.jgit.lib.BitmapIndex.Bitmap;
+import org.eclipse.jgit.lib.BitmapIndex.BitmapBuilder;
+import org.eclipse.jgit.lib.ProgressMonitor;
+
+/**
+ * Calculate the bitmap indicating what other commits are reachable from certain
+ * commit.
+ * <p>
+ * This bitmap refers only to commits. For a bitmap with ALL objects reachable
+ * from certain object, see {@code BitmapWalker}.
+ */
+class BitmapCalculator {
+
+ private final RevWalk walk;
+ private final BitmapIndex bitmapIndex;
+
+ BitmapCalculator(RevWalk walk) throws IOException {
+ this.walk = walk;
+ this.bitmapIndex = requireNonNull(
+ walk.getObjectReader().getBitmapIndex());
+ }
+
+ /**
+ * Get the reachability bitmap from certain commit to other commits.
+ * <p>
+ * This will return a precalculated bitmap if available or walk building one
+ * until finding a precalculated bitmap (and returning the union).
+ * <p>
+ * Beware that the returned bitmap it is guaranteed to include ONLY the
+ * commits reachable from the initial commit. It COULD include other objects
+ * (because precalculated bitmaps have them) but caller shouldn't count on
+ * that. See {@link BitmapWalker} for a full reachability bitmap.
+ *
+ * @param start
+ * the commit. Use {@code walk.parseCommit(objectId)} to get this
+ * object from the id.
+ * @param pm
+ * progress monitor. Updated by one per commit browsed in the
+ * graph
+ * @return the bitmap of reachable commits (and maybe some extra objects)
+ * for the commit
+ * @throws MissingObjectException
+ * the supplied id doesn't exist
+ * @throws IncorrectObjectTypeException
+ * the supplied id doens't refer to a commit or a tag
+ * @throws IOException
+ */
+ BitmapBuilder getBitmap(RevCommit start, ProgressMonitor pm)
+ throws MissingObjectException,
+ IncorrectObjectTypeException, IOException {
+ Bitmap precalculatedBitmap = bitmapIndex.getBitmap(start);
+ if (precalculatedBitmap != null) {
+ return asBitmapBuilder(precalculatedBitmap);
+ }
+
+ walk.reset();
+ walk.sort(RevSort.TOPO);
+ walk.markStart(start);
+ // Unbounded walk. If the repo has bitmaps, it should bump into one at
+ // some point.
+
+ BitmapBuilder bitmapResult = bitmapIndex.newBitmapBuilder();
+ walk.setRevFilter(new AddToBitmapFilter(bitmapResult));
+ while (walk.next() != null) {
+ // Iterate through all of the commits. The BitmapRevFilter does
+ // the work.
+ //
+ // filter.include returns true for commits that do not have
+ // a bitmap in bitmapIndex and are not reachable from a
+ // bitmap in bitmapIndex encountered earlier in the walk.
+ // Thus the number of commits returned by next() measures how
+ // much history was traversed without being able to make use
+ // of bitmaps.
+ pm.update(1);
+ }
+
+ return bitmapResult;
+ }
+
+ private BitmapBuilder asBitmapBuilder(Bitmap bitmap) {
+ return bitmapIndex.newBitmapBuilder().or(bitmap);
+ }
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/BitmappedReachabilityChecker.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/BitmappedReachabilityChecker.java
new file mode 100644
index 0000000000..ab453433d8
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/BitmappedReachabilityChecker.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2019, Google LLC
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Distribution License v1.0 which
+ * accompanies this distribution, is reproduced below, and is
+ * available at http://www.eclipse.org/org/documents/edl-v10.php
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * - Neither the name of the Eclipse Foundation, Inc. nor the
+ * names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.eclipse.jgit.revwalk;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+import org.eclipse.jgit.lib.BitmapIndex.BitmapBuilder;
+import org.eclipse.jgit.lib.NullProgressMonitor;
+
+/**
+ * Checks the reachability using bitmaps.
+ *
+ * @since 5.4
+ */
+public class BitmappedReachabilityChecker implements ReachabilityChecker {
+
+ private final RevWalk walk;
+
+ /**
+ * @param walk
+ * walk on the repository to get or create the bitmaps for the
+ * commits. It must have bitmaps.
+ * @throws AssertionError
+ * runtime exception if walk is over a repository without
+ * bitmaps
+ * @throws IOException
+ * if the index or the object reader cannot be opened.
+ */
+ public BitmappedReachabilityChecker(RevWalk walk)
+ throws IOException {
+ this.walk = walk;
+ if (walk.getObjectReader().getBitmapIndex() == null) {
+ throw new AssertionError(
+ "Trying to use bitmapped reachability check " //$NON-NLS-1$
+ + "on a repository without bitmaps"); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Check all targets are reachable from the starters.
+ * <p>
+ * In this implementation, it is recommended to put the most popular
+ * starters (e.g. refs/heads tips) at the beginning of the collection
+ */
+ @Override
+ public Optional<RevCommit> areAllReachable(Collection<RevCommit> targets,
+ Collection<RevCommit> starters) throws MissingObjectException,
+ IncorrectObjectTypeException, IOException {
+ BitmapCalculator calculator = new BitmapCalculator(walk);
+
+ /**
+ * Iterate over starters bitmaps and remove targets as they become
+ * reachable.
+ *
+ * Building the total starters bitmap has the same cost (iterating over
+ * all starters adding the bitmaps) and this gives us the chance to
+ * shorcut the loop.
+ *
+ * This is based on the assuption that most of the starters will have
+ * the reachability bitmap precalculated. If many require a walk, the
+ * walk.reset() could start to take too much time.
+ */
+ List<RevCommit> remainingTargets = new ArrayList<>(targets);
+ for (RevCommit starter : starters) {
+ BitmapBuilder starterBitmap = calculator.getBitmap(starter,
+ NullProgressMonitor.INSTANCE);
+ remainingTargets.removeIf(starterBitmap::contains);
+ if (remainingTargets.isEmpty()) {
+ return Optional.empty();
+ }
+ }
+
+ return Optional.of(remainingTargets.get(0));
+ }
+
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PedestrianReachabilityChecker.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PedestrianReachabilityChecker.java
new file mode 100644
index 0000000000..4012a45d3c
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PedestrianReachabilityChecker.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2019, Google LLC.
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Distribution License v1.0 which
+ * accompanies this distribution, is reproduced below, and is
+ * available at http://www.eclipse.org/org/documents/edl-v10.php
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * - Neither the name of the Eclipse Foundation, Inc. nor the
+ * names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.eclipse.jgit.revwalk;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Optional;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+
+/**
+ * Checks the reachability walking the graph from the starters towards the
+ * target.
+ *
+ * @since 5.4
+ */
+public class PedestrianReachabilityChecker implements ReachabilityChecker {
+
+ private final boolean topoSort;
+
+ private final RevWalk walk;
+
+ /**
+ * New instance of the reachability checker using a existing walk.
+ *
+ * @param topoSort
+ * walk commits in topological order
+ * @param walk
+ * RevWalk instance to reuse. Caller retains ownership.
+ */
+ public PedestrianReachabilityChecker(boolean topoSort,
+ RevWalk walk) {
+ this.topoSort = topoSort;
+ this.walk = walk;
+ }
+
+ @Override
+ public Optional<RevCommit> areAllReachable(Collection<RevCommit> targets,
+ Collection<RevCommit> starters)
+ throws MissingObjectException, IncorrectObjectTypeException,
+ IOException {
+ walk.reset();
+ if (topoSort) {
+ walk.sort(RevSort.TOPO);
+ }
+
+ for (RevCommit target: targets) {
+ walk.markStart(target);
+ }
+
+ for (RevCommit starter : starters) {
+ walk.markUninteresting(starter);
+ }
+
+ return Optional.ofNullable(walk.next());
+ }
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ReachabilityChecker.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ReachabilityChecker.java
new file mode 100644
index 0000000000..2ed06d1769
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ReachabilityChecker.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2019, Google LLC.
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Distribution License v1.0 which
+ * accompanies this distribution, is reproduced below, and is
+ * available at http://www.eclipse.org/org/documents/edl-v10.php
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * - Neither the name of the Eclipse Foundation, Inc. nor the
+ * names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.eclipse.jgit.revwalk;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Optional;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+
+/**
+ * Check if a commit is reachable from a collection of starting commits.
+ * <p>
+ * Note that this checks the reachability of commits (and tags). Trees, blobs or
+ * any other object will cause IncorrectObjectTypeException exceptions.
+ *
+ * @since 5.4
+ */
+public interface ReachabilityChecker {
+
+ /**
+ * Check if all targets are reachable from the {@code starter} commits.
+ * <p>
+ * Caller should parse the objectIds (preferably with
+ * {@code walk.parseCommit()} and handle missing/incorrect type objects
+ * before calling this method.
+ *
+ * @param targets
+ * commits to reach.
+ * @param starters
+ * known starting points.
+ * @return An unreachable target if at least one of the targets is
+ * unreachable. An empty optional if all targets are reachable from
+ * the starters.
+ *
+ * @throws MissingObjectException
+ * if any of the incoming objects doesn't exist in the
+ * repository.
+ * @throws IncorrectObjectTypeException
+ * if any of the incoming objects is not a commit or a tag.
+ * @throws IOException
+ * if any of the underlying indexes or readers can not be
+ * opened.
+ */
+ Optional<RevCommit> areAllReachable(Collection<RevCommit> targets,
+ Collection<RevCommit> starters)
+ throws MissingObjectException, IncorrectObjectTypeException,
+ IOException;
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java
index 7289ce7b6c..2b27df2b84 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java
@@ -115,36 +115,26 @@ public class Daemon {
repositoryResolver = (RepositoryResolver<DaemonClient>) RepositoryResolver.NONE;
- uploadPackFactory = new UploadPackFactory<DaemonClient>() {
- @Override
- public UploadPack create(DaemonClient req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- up.setTimeout(getTimeout());
- up.setPackConfig(getPackConfig());
- return up;
- }
+ uploadPackFactory = (DaemonClient req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ up.setTimeout(getTimeout());
+ up.setPackConfig(getPackConfig());
+ return up;
};
- receivePackFactory = new ReceivePackFactory<DaemonClient>() {
- @Override
- public ReceivePack create(DaemonClient req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- ReceivePack rp = new ReceivePack(db);
-
- InetAddress peer = req.getRemoteAddress();
- String host = peer.getCanonicalHostName();
- if (host == null)
- host = peer.getHostAddress();
- String name = "anonymous"; //$NON-NLS-1$
- String email = name + "@" + host; //$NON-NLS-1$
- rp.setRefLogIdent(new PersonIdent(name, email));
- rp.setTimeout(getTimeout());
-
- return rp;
- }
+ receivePackFactory = (DaemonClient req, Repository db) -> {
+ ReceivePack rp = new ReceivePack(db);
+
+ InetAddress peer = req.getRemoteAddress();
+ String host = peer.getCanonicalHostName();
+ if (host == null)
+ host = peer.getHostAddress();
+ String name = "anonymous"; //$NON-NLS-1$
+ String email = name + "@" + host; //$NON-NLS-1$
+ rp.setRefLogIdent(new PersonIdent(name, email));
+ rp.setTimeout(getTimeout());
+
+ return rp;
};
services = new DaemonService[] {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PostReceiveHook.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PostReceiveHook.java
index ba5d2f3c8f..28a146dde5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PostReceiveHook.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PostReceiveHook.java
@@ -63,12 +63,9 @@ import java.util.Collection;
*/
public interface PostReceiveHook {
/** A simple no-op hook. */
- PostReceiveHook NULL = new PostReceiveHook() {
- @Override
- public void onPostReceive(final ReceivePack rp,
- final Collection<ReceiveCommand> commands) {
- // Do nothing.
- }
+ PostReceiveHook NULL = (final ReceivePack rp,
+ final Collection<ReceiveCommand> commands) -> {
+ // Do nothing.
};
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PostUploadHook.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PostUploadHook.java
index 3aa3b127e5..251bfe271a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PostUploadHook.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PostUploadHook.java
@@ -57,11 +57,8 @@ import org.eclipse.jgit.storage.pack.PackStatistics;
*/
public interface PostUploadHook {
/** A simple no-op hook. */
- PostUploadHook NULL = new PostUploadHook() {
- @Override
- public void onPostUpload(PackStatistics stats) {
- // Do nothing.
- }
+ PostUploadHook NULL = (PackStatistics stats) -> {
+ // Do nothing.
};
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PreReceiveHook.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PreReceiveHook.java
index 30845d3b68..b91756bd5e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PreReceiveHook.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PreReceiveHook.java
@@ -79,12 +79,9 @@ import java.util.Collection;
*/
public interface PreReceiveHook {
/** A simple no-op hook. */
- PreReceiveHook NULL = new PreReceiveHook() {
- @Override
- public void onPreReceive(final ReceivePack rp,
- final Collection<ReceiveCommand> commands) {
- // Do nothing.
- }
+ PreReceiveHook NULL = (final ReceivePack rp,
+ final Collection<ReceiveCommand> commands) -> {
+ // Do nothing.
};
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateStore.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateStore.java
index aeca63500a..14afc44eec 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateStore.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateStore.java
@@ -57,7 +57,6 @@ import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -193,81 +192,78 @@ public class PushCertificateStore implements AutoCloseable {
* close resources.
*/
public Iterable<PushCertificate> getAll(String refName) {
- return new Iterable<PushCertificate>() {
- @Override
- public Iterator<PushCertificate> iterator() {
- return new Iterator<PushCertificate>() {
- private final String path = pathName(refName);
- private PushCertificate next;
+ return () -> new Iterator<PushCertificate>() {
+ private final String path = pathName(refName);
+
+ private PushCertificate next;
+
+ private RevWalk rw;
+ {
+ try {
+ if (reader == null) {
+ load();
+ }
+ if (commit != null) {
+ rw = new RevWalk(reader);
+ rw.setTreeFilter(AndTreeFilter.create(
+ PathFilterGroup.create(Collections
+ .singleton(PathFilter.create(path))),
+ TreeFilter.ANY_DIFF));
+ rw.setRewriteParents(false);
+ rw.markStart(rw.parseCommit(commit));
+ } else {
+ rw = null;
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
- private RevWalk rw;
- {
+ @Override
+ public boolean hasNext() {
+ try {
+ if (next == null) {
+ if (rw == null) {
+ return false;
+ }
try {
- if (reader == null) {
- load();
- }
- if (commit != null) {
- rw = new RevWalk(reader);
- rw.setTreeFilter(AndTreeFilter.create(
- PathFilterGroup.create(
- Collections.singleton(PathFilter.create(path))),
- TreeFilter.ANY_DIFF));
- rw.setRewriteParents(false);
- rw.markStart(rw.parseCommit(commit));
+ RevCommit c = rw.next();
+ if (c != null) {
+ try (TreeWalk tw = TreeWalk.forPath(
+ rw.getObjectReader(), path,
+ c.getTree())) {
+ next = read(tw);
+ }
} else {
- rw = null;
+ next = null;
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
-
- @Override
- public boolean hasNext() {
- try {
- if (next == null) {
- if (rw == null) {
- return false;
- }
- try {
- RevCommit c = rw.next();
- if (c != null) {
- try (TreeWalk tw = TreeWalk.forPath(
- rw.getObjectReader(), path, c.getTree())) {
- next = read(tw);
- }
- } else {
- next = null;
- }
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- return next != null;
- } finally {
- if (next == null && rw != null) {
- rw.close();
- rw = null;
- }
- }
+ return next != null;
+ } finally {
+ if (next == null && rw != null) {
+ rw.close();
+ rw = null;
}
+ }
+ }
- @Override
- public PushCertificate next() {
- hasNext();
- PushCertificate n = next;
- if (n == null) {
- throw new NoSuchElementException();
- }
- next = null;
- return n;
- }
+ @Override
+ public PushCertificate next() {
+ hasNext();
+ PushCertificate n = next;
+ if (n == null) {
+ throw new NoSuchElementException();
+ }
+ next = null;
+ return n;
+ }
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
}
};
}
@@ -442,13 +438,8 @@ public class PushCertificateStore implements AutoCloseable {
}
private static void sortPending(List<PendingCert> pending) {
- Collections.sort(pending, new Comparator<PendingCert>() {
- @Override
- public int compare(PendingCert a, PendingCert b) {
- return Long.signum(
- a.ident.getWhen().getTime() - b.ident.getWhen().getTime());
- }
- });
+ Collections.sort(pending, (PendingCert a, PendingCert b) -> Long.signum(
+ a.ident.getWhen().getTime() - b.ident.getWhen().getTime()));
}
private DirCache newDirCache() throws IOException {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/RefFilter.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/RefFilter.java
index d6d6198f5b..d19c652c25 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/RefFilter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/RefFilter.java
@@ -61,12 +61,7 @@ public interface RefFilter {
/**
* The default filter, allows all refs to be shown.
*/
- RefFilter DEFAULT = new RefFilter() {
- @Override
- public Map<String, Ref> filter (Map<String, Ref> refs) {
- return refs;
- }
- };
+ RefFilter DEFAULT = (Map<String, Ref> refs) -> refs;
/**
* Filters a {@code Map} of refs before it is advertised to the client.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java
index 005a0c2d0e..fdb19df91a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java
@@ -100,13 +100,9 @@ public abstract class SshSessionFactory {
* @since 5.2
*/
public static String getLocalUserName() {
- return AccessController.doPrivileged(new PrivilegedAction<String>() {
- @Override
- public String run() {
- return SystemReader.getInstance()
- .getProperty(Constants.OS_USER_NAME_KEY);
- }
- });
+ return AccessController
+ .doPrivileged((PrivilegedAction<String>) () -> SystemReader
+ .getInstance().getProperty(Constants.OS_USER_NAME_KEY));
}
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java
index fbb2c44100..f2a2b0a1c2 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java
@@ -188,12 +188,8 @@ class TransportLocal extends Transport implements PackTransport {
&& !"git upload-pack".equals(up)) //$NON-NLS-1$
return new ForkLocalFetchConnection();
- UploadPackFactory<Void> upf = new UploadPackFactory<Void>() {
- @Override
- public UploadPack create(Void req, Repository db) {
- return createUploadPack(db);
- }
- };
+ UploadPackFactory<Void> upf = (Void req,
+ Repository db) -> createUploadPack(db);
return new InternalFetchConnection<>(this, upf, null, openRepo());
}
@@ -205,12 +201,8 @@ class TransportLocal extends Transport implements PackTransport {
&& !"git receive-pack".equals(rp)) //$NON-NLS-1$
return new ForkLocalPushConnection();
- ReceivePackFactory<Void> rpf = new ReceivePackFactory<Void>() {
- @Override
- public ReceivePack create(Void req, Repository db) {
- return createReceivePack(db);
- }
- };
+ ReceivePackFactory<Void> rpf = (Void req,
+ Repository db) -> createReceivePack(db);
return new InternalPushConnection<>(this, rpf, null, openRepo());
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
index 27090f4383..3ed9886c45 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
@@ -44,12 +44,11 @@
package org.eclipse.jgit.transport;
import static java.util.Collections.unmodifiableMap;
-import static org.eclipse.jgit.util.RefMap.toRefMap;
import static org.eclipse.jgit.lib.Constants.R_TAGS;
import static org.eclipse.jgit.transport.GitProtocolConstants.CAPABILITY_REF_IN_WANT;
+import static org.eclipse.jgit.transport.GitProtocolConstants.CAPABILITY_SERVER_OPTION;
import static org.eclipse.jgit.transport.GitProtocolConstants.COMMAND_FETCH;
import static org.eclipse.jgit.transport.GitProtocolConstants.COMMAND_LS_REFS;
-import static org.eclipse.jgit.transport.GitProtocolConstants.CAPABILITY_SERVER_OPTION;
import static org.eclipse.jgit.transport.GitProtocolConstants.OPTION_AGENT;
import static org.eclipse.jgit.transport.GitProtocolConstants.OPTION_ALLOW_REACHABLE_SHA1_IN_WANT;
import static org.eclipse.jgit.transport.GitProtocolConstants.OPTION_ALLOW_TIP_SHA1_IN_WANT;
@@ -65,6 +64,7 @@ import static org.eclipse.jgit.transport.GitProtocolConstants.OPTION_SHALLOW;
import static org.eclipse.jgit.transport.GitProtocolConstants.OPTION_SIDE_BAND;
import static org.eclipse.jgit.transport.GitProtocolConstants.OPTION_SIDE_BAND_64K;
import static org.eclipse.jgit.transport.GitProtocolConstants.OPTION_THIN_PACK;
+import static org.eclipse.jgit.util.RefMap.toRefMap;
import java.io.ByteArrayOutputStream;
import java.io.EOFException;
@@ -80,8 +80,10 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
import java.util.TreeMap;
+import java.util.stream.Collectors;
import org.eclipse.jgit.annotations.NonNull;
import org.eclipse.jgit.annotations.Nullable;
@@ -104,8 +106,11 @@ import org.eclipse.jgit.lib.RefDatabase;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.AsyncRevObjectQueue;
import org.eclipse.jgit.revwalk.BitmapWalker;
+import org.eclipse.jgit.revwalk.BitmappedReachabilityChecker;
import org.eclipse.jgit.revwalk.DepthWalk;
import org.eclipse.jgit.revwalk.ObjectWalk;
+import org.eclipse.jgit.revwalk.PedestrianReachabilityChecker;
+import org.eclipse.jgit.revwalk.ReachabilityChecker;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevFlag;
import org.eclipse.jgit.revwalk.RevFlagSet;
@@ -1867,59 +1872,89 @@ public class UploadPack {
private static void checkNotAdvertisedWants(UploadPack up,
List<ObjectId> notAdvertisedWants, Set<ObjectId> reachableFrom)
- throws MissingObjectException, IncorrectObjectTypeException, IOException {
- // Walk the requested commits back to the provided set of commits. If any
- // commit exists, a branch was deleted or rewound and the repository owner
- // no longer exports that requested item. If the requested commit is merged
- // into an advertised branch it will be marked UNINTERESTING and no commits
- // return.
+ throws IOException {
ObjectReader reader = up.getRevWalk().getObjectReader();
try (RevWalk walk = new RevWalk(reader)) {
walk.setRetainBody(false);
- AsyncRevObjectQueue q = walk.parseAny(notAdvertisedWants, true);
- try {
- RevObject obj;
- while ((obj = q.next()) != null) {
- if (!(obj instanceof RevCommit)) {
- // If unadvertized non-commits are requested, use
- // bitmaps. If there are no bitmaps, instead of
- // incurring the expense of a manual walk, reject
- // the request.
- BitmapIndex bitmapIndex = reader.getBitmapIndex();
- if (bitmapIndex != null) {
- checkNotAdvertisedWantsUsingBitmap(
- reader,
- bitmapIndex,
- notAdvertisedWants,
- reachableFrom);
- return;
- }
- throw new WantNotValidException(obj);
- }
- walk.markStart((RevCommit) obj);
+ // Missing "wants" throw exception here
+ List<RevObject> wantsAsObjs = objectIdsToRevObjects(walk,
+ notAdvertisedWants);
+ List<RevCommit> wantsAsCommits = wantsAsObjs.stream()
+ .filter(obj -> obj instanceof RevCommit)
+ .map(obj -> (RevCommit) obj)
+ .collect(Collectors.toList());
+ boolean allWantsAreCommits = wantsAsObjs.size() == wantsAsCommits
+ .size();
+ boolean repoHasBitmaps = reader.getBitmapIndex() != null;
+
+ if (!allWantsAreCommits) {
+ if (!repoHasBitmaps) {
+ // If unadvertized non-commits are requested, use
+ // bitmaps. If there are no bitmaps, instead of
+ // incurring the expense of a manual walk, reject
+ // the request.
+ RevObject nonCommit = wantsAsObjs
+ .stream()
+ .filter(obj -> !(obj instanceof RevCommit))
+ .limit(1)
+ .collect(Collectors.toList()).get(0);
+ throw new WantNotValidException(nonCommit);
+
}
- } catch (MissingObjectException notFound) {
- throw new WantNotValidException(notFound.getObjectId(),
- notFound);
- } finally {
- q.release();
+ checkNotAdvertisedWantsUsingBitmap(reader,
+ reader.getBitmapIndex(), notAdvertisedWants,
+ reachableFrom);
+ return;
}
- for (ObjectId id : reachableFrom) {
- try {
- walk.markUninteresting(walk.parseCommit(id));
- } catch (IncorrectObjectTypeException notCommit) {
- continue;
- }
+
+ // All wants are commits, we can use ReachabilityChecker
+ ReachabilityChecker reachabilityChecker = repoHasBitmaps
+ ? new BitmappedReachabilityChecker(walk)
+ : new PedestrianReachabilityChecker(true, walk);
+
+ List<RevCommit> starters = objectIdsToRevCommits(walk,
+ reachableFrom);
+ Optional<RevCommit> unreachable = reachabilityChecker
+ .areAllReachable(wantsAsCommits, starters);
+ if (unreachable.isPresent()) {
+ throw new WantNotValidException(unreachable.get());
}
- RevCommit bad = walk.next();
- if (bad != null) {
- throw new WantNotValidException(bad);
+ } catch (MissingObjectException notFound) {
+ throw new WantNotValidException(notFound.getObjectId(), notFound);
+ }
+ }
+
+ // Resolve the ObjectIds into RevObjects. Any missing object raises an
+ // exception
+ private static List<RevObject> objectIdsToRevObjects(RevWalk walk,
+ Iterable<ObjectId> objectIds)
+ throws MissingObjectException, IOException {
+ List<RevObject> result = new ArrayList<>();
+ for (ObjectId objectId : objectIds) {
+ result.add(walk.parseAny(objectId));
+ }
+ return result;
+ }
+
+ // Get commits from object ids. If the id is not a commit, ignore it. If the
+ // id doesn't exist, report the missing object in a exception.
+ private static List<RevCommit> objectIdsToRevCommits(RevWalk walk,
+ Iterable<ObjectId> objectIds)
+ throws MissingObjectException, IOException {
+ List<RevCommit> result = new ArrayList<>();
+ for (ObjectId objectId : objectIds) {
+ try {
+ result.add(walk.parseCommit(objectId));
+ } catch (IncorrectObjectTypeException e) {
+ continue;
}
}
+ return result;
}
+
private void addCommonBase(RevObject o) {
if (!o.has(COMMON)) {
o.add(COMMON);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ReceivePackFactory.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ReceivePackFactory.java
index b850d1ef94..5d36e58c01 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ReceivePackFactory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ReceivePackFactory.java
@@ -57,12 +57,8 @@ public interface ReceivePackFactory<C> {
/**
* A factory disabling the ReceivePack service for all repositories
*/
- ReceivePackFactory<?> DISABLED = new ReceivePackFactory<Object>() {
- @Override
- public ReceivePack create(Object req, Repository db)
- throws ServiceNotEnabledException {
- throw new ServiceNotEnabledException();
- }
+ ReceivePackFactory<?> DISABLED = (Object req, Repository db) -> {
+ throw new ServiceNotEnabledException();
};
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/RepositoryResolver.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/RepositoryResolver.java
index 4816f21bcc..dd24b7a0f2 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/RepositoryResolver.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/RepositoryResolver.java
@@ -57,12 +57,8 @@ public interface RepositoryResolver<C> {
/**
* Resolver configured to open nothing.
*/
- RepositoryResolver<?> NONE = new RepositoryResolver<Object>() {
- @Override
- public Repository open(Object req, String name)
- throws RepositoryNotFoundException {
- throw new RepositoryNotFoundException(name);
- }
+ RepositoryResolver<?> NONE = (Object req, String name) -> {
+ throw new RepositoryNotFoundException(name);
};
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/UploadPackFactory.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/UploadPackFactory.java
index bb43b136d8..b8673f5eb5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/UploadPackFactory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/UploadPackFactory.java
@@ -57,12 +57,8 @@ public interface UploadPackFactory<C> {
/**
* A factory disabling the UploadPack service for all repositories.
*/
- UploadPackFactory<?> DISABLED = new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException {
- throw new ServiceNotEnabledException();
- }
+ UploadPackFactory<?> DISABLED = (Object req, Repository db) -> {
+ throw new ServiceNotEnabledException();
};
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
index b768acd050..c0c24872b2 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
@@ -774,14 +774,10 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator {
return attributesNode;
}
- private static final Comparator<Entry> ENTRY_CMP = new Comparator<Entry>() {
- @Override
- public int compare(Entry a, Entry b) {
- return Paths.compare(
- a.encodedName, 0, a.encodedNameLen, a.getMode().getBits(),
- b.encodedName, 0, b.encodedNameLen, b.getMode().getBits());
- }
- };
+ private static final Comparator<Entry> ENTRY_CMP = (Entry a,
+ Entry b) -> Paths.compare(a.encodedName, 0, a.encodedNameLen,
+ a.getMode().getBits(), b.encodedName, 0, b.encodedNameLen,
+ b.getMode().getBits());
/**
* Constructor helper.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
index 536e4f1dfa..53685029db 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
@@ -463,13 +463,9 @@ public abstract class FS {
* @return the user's home directory; null if the user does not have one.
*/
protected File userHomeImpl() {
- final String home = AccessController
- .doPrivileged(new PrivilegedAction<String>() {
- @Override
- public String run() {
- return System.getProperty("user.home"); //$NON-NLS-1$
- }
- });
+ final String home = AccessController.doPrivileged(
+ (PrivilegedAction<String>) () -> System.getProperty("user.home") //$NON-NLS-1$
+ );
if (home == null || home.length() == 0)
return null;
return new File(home).getAbsoluteFile();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java
index e5c8d9d398..9a163e8e38 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java
@@ -80,12 +80,9 @@ public class FS_Win32_Cygwin extends FS_Win32 {
*/
public static boolean isCygwin() {
final String path = AccessController
- .doPrivileged(new PrivilegedAction<String>() {
- @Override
- public String run() {
- return System.getProperty("java.library.path"); //$NON-NLS-1$
- }
- });
+ .doPrivileged((PrivilegedAction<String>) () -> System
+ .getProperty("java.library.path") //$NON-NLS-1$
+ );
if (path == null)
return false;
File found = FS.searchPath(path, "cygpath.exe"); //$NON-NLS-1$
@@ -141,13 +138,9 @@ public class FS_Win32_Cygwin extends FS_Win32 {
/** {@inheritDoc} */
@Override
protected File userHomeImpl() {
- final String home = AccessController
- .doPrivileged(new PrivilegedAction<String>() {
- @Override
- public String run() {
- return System.getenv("HOME"); //$NON-NLS-1$
- }
- });
+ final String home = AccessController.doPrivileged(
+ (PrivilegedAction<String>) () -> System.getenv("HOME") //$NON-NLS-1$
+ );
if (home == null || home.length() == 0)
return super.userHomeImpl();
return resolve(new File("."), home); //$NON-NLS-1$
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
index 953c9768f9..5feacffdb3 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
@@ -368,12 +368,9 @@ public abstract class SystemReader {
}
private String getOsName() {
- return AccessController.doPrivileged(new PrivilegedAction<String>() {
- @Override
- public String run() {
- return getProperty("os.name"); //$NON-NLS-1$
- }
- });
+ return AccessController.doPrivileged(
+ (PrivilegedAction<String>) () -> getProperty("os.name") //$NON-NLS-1$
+ );
}
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/io/IsolatedOutputStream.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/IsolatedOutputStream.java
index 8ea8723194..18de7052d9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/io/IsolatedOutputStream.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/IsolatedOutputStream.java
@@ -102,12 +102,9 @@ public class IsolatedOutputStream extends OutputStream {
public void write(byte[] buf, int pos, int cnt)
throws IOException {
checkClosed();
- execute(new Callable<Void>() {
- @Override
- public Void call() throws IOException {
- dst.write(buf, pos, cnt);
- return null;
- }
+ execute(() -> {
+ dst.write(buf, pos, cnt);
+ return null;
});
}
@@ -115,12 +112,9 @@ public class IsolatedOutputStream extends OutputStream {
@Override
public void flush() throws IOException {
checkClosed();
- execute(new Callable<Void>() {
- @Override
- public Void call() throws IOException {
- dst.flush();
- return null;
- }
+ execute(() -> {
+ dst.flush();
+ return null;
});
}
@@ -159,12 +153,9 @@ public class IsolatedOutputStream extends OutputStream {
}
private void cleanClose() throws IOException {
- execute(new Callable<Void>() {
- @Override
- public Void call() throws IOException {
- dst.close();
- return null;
- }
+ execute(() -> {
+ dst.close();
+ return null;
});
}
@@ -178,12 +169,9 @@ public class IsolatedOutputStream extends OutputStream {
Future<Void> close;
try {
- close = copier.submit(new Callable<Void>() {
- @Override
- public Void call() throws IOException {
- dst.close();
- return null;
- }
+ close = copier.submit(() -> {
+ dst.close();
+ return null;
});
} catch (RejectedExecutionException e) {
throw new IOException(e);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/io/ThrowingPrintWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/ThrowingPrintWriter.java
index caabcef574..9431aafbde 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/io/ThrowingPrintWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/ThrowingPrintWriter.java
@@ -68,12 +68,10 @@ public class ThrowingPrintWriter extends Writer {
*/
public ThrowingPrintWriter(Writer out) {
this.out = out;
- LF = AccessController.doPrivileged(new PrivilegedAction<String>() {
- @Override
- public String run() {
- return SystemReader.getInstance().getProperty("line.separator"); //$NON-NLS-1$
- }
- });
+ LF = AccessController
+ .doPrivileged((PrivilegedAction<String>) () -> SystemReader
+ .getInstance().getProperty("line.separator") //$NON-NLS-1$
+ );
}
/** {@inheritDoc} */

Back to the top