Merge branch 'master' into stable-6.7
* master: Remove the cbi-snapshots Maven repository Update Orbit to orbit-aggregation/release/4.29.0 Add target platform for Eclipse 2023-09 (4.29) Use release p2 repo for Eclipse 2023-06 (4.28) Update tycho to 4.0.2 Update jmh to 1.37 Update bouncycastle to 1.76 Fix some tests in ConfigTest Handle global git config $XDG_CONFIG_HOME/git/config IO: use JDK convenience methods org.eclipse.jgit.junit.ssh/.settings/.api_filters: fix unclosed tags ReadChangedPathFilter: fix Non-externalized string literal warning Introduce core.packedIndexGitUseStrongRefs config key DfsReader: Make PackLoadListener interface visible to subclasses DfsGarbageCollector: provide commit graph stats DfsGarbageCollector: put only GC commits into the commit graph DfsReader: Expose when indices are loaded Change-Id: Idd78a0a1bc3cd3db5edb475e235c13354d9087a9
This commit is contained in:
commit
2e2e58d59f
|
@ -38,6 +38,7 @@ For details on native git options see also the official [git config documentatio
|
|||
| `core.packedGitMmap` | `false` | ✅ | Whether to use Java NIO virtual memory mapping for JGit buffer cache. When set to `true` enables use of Java NIO virtual memory mapping for cache windows, `false` reads entire window into a `byte[]` with standard read calls. `true` is experimental and may cause instabilities and crashes since Java doesn't support explicit unmapping of file regions mapped to virtual memory. |
|
||||
| `core.packedGitOpenFiles` | `128` | ⃞ | Maximum number of streams to open at a time. Open packs count against the process limits. |
|
||||
| `core.packedGitUseStrongRefs` | `false` | ⃞ | Whether the window cache should use strong references (`true`) or SoftReferences (`false`). When `false` the JVM will drop data cached in the JGit block cache when heap usage comes close to the maximum heap size. |
|
||||
| `core.packedIndexGitUseStrongRefs` | `true` | ⃞ | Whether pack indices should use strong references (`true`) or SoftReferences (`false`). When `false` the JVM will drop data cached in the JGit pack indices when heap usage comes close to the maximum heap size. |
|
||||
| `core.packedGitWindowSize` | `8 kiB` | ✅ | Number of bytes of a pack file to load into memory in a single read operation. This is the "page size" of the JGit buffer cache, used for all pack access operations. All disk IO occurs as single window reads. Setting this too large may cause the process to load more data than is required; setting this too small may increase the frequency of read() system calls. |
|
||||
| `core.precomposeUnicode` | `true` on Mac OS | ✅ | MacOS only. When `true`, JGit reverts the unicode decomposition of filenames done by Mac OS. |
|
||||
| `core.quotePath` | `true` | ✅ | Commands that output paths (e.g. ls-files, diff), will quote "unusual" characters in the pathname by enclosing the pathname in double-quotes and escaping those characters with backslashes in the same way C escapes control characters (e.g. `\t` for TAB, `\n` for LF, `\\` for backslash) or bytes with values larger than `0x80` (e.g. octal `\302\265` for "micro" in UTF-8). |
|
||||
|
|
24
WORKSPACE
24
WORKSPACE
|
@ -24,20 +24,20 @@ register_toolchains("//tools:error_prone_warnings_toolchain_java11_definition")
|
|||
|
||||
register_toolchains("//tools:error_prone_warnings_toolchain_java17_definition")
|
||||
|
||||
JMH_VERS = "1.36"
|
||||
JMH_VERS = "1.37"
|
||||
|
||||
maven_jar(
|
||||
name = "jmh-core",
|
||||
artifact = "org.openjdk.jmh:jmh-core:" + JMH_VERS,
|
||||
attach_source = False,
|
||||
sha1 = "5a69117788322630fc5f228bc804771335d41b1b",
|
||||
sha1 = "896f27e49105b35ea1964319c83d12082e7a79ef",
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
name = "jmh-annotations",
|
||||
artifact = "org.openjdk.jmh:jmh-generator-annprocess:" + JMH_VERS,
|
||||
attach_source = False,
|
||||
sha1 = "41c92c483f92b3cce1c01edd849bfd3ffd920cf6",
|
||||
sha1 = "da93888682df163144edf9b13d2b78e54166063a",
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
|
@ -265,32 +265,32 @@ maven_jar(
|
|||
src_sha1 = "135448f8b3b3b06f7f3312d222992525ae4bdd25",
|
||||
)
|
||||
|
||||
BOUNCYCASTLE_VER = "1.75"
|
||||
BOUNCYCASTLE_VER = "1.76"
|
||||
|
||||
maven_jar(
|
||||
name = "bcpg",
|
||||
artifact = "org.bouncycastle:bcpg-jdk18on:" + BOUNCYCASTLE_VER,
|
||||
sha1 = "d37fddd467bc3351e4f9a66716f5f3231a3ba540",
|
||||
src_sha1 = "41b22ae4e8455f837ac65cfc618a6900ba392747",
|
||||
sha1 = "d5c23d0470261254d0e84dde1d4237d228540298",
|
||||
src_sha1 = "68d49cdd07da2121a904f481e2e92ca864c08d05",
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
name = "bcprov",
|
||||
artifact = "org.bouncycastle:bcprov-jdk18on:" + BOUNCYCASTLE_VER,
|
||||
sha1 = "fd9638f6468e934991c56242d0da2ae38890c2a4",
|
||||
src_sha1 = "824c0265a84d1ec214c3513dc14fc7990bb4f70d",
|
||||
sha1 = "3a785d0b41806865ad7e311162bfa3fa60b3965b",
|
||||
src_sha1 = "9e00748625819d7e3cc1447366dfa76f0b354a2d",
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
name = "bcutil",
|
||||
artifact = "org.bouncycastle:bcutil-jdk18on:" + BOUNCYCASTLE_VER,
|
||||
sha1 = "0f58f4bbec8a40137bbb04f6174cd164fae0776b",
|
||||
src_sha1 = "47713fc5d0766ab47b7dae237869ae102ed7f103",
|
||||
sha1 = "8c7594e651a278bcde18e038d8ab55b1f97f4d31",
|
||||
src_sha1 = "836bb2c42f10b29127b470ebe5c648927dd4ddc6",
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
name = "bcpkix",
|
||||
artifact = "org.bouncycastle:bcpkix-jdk18on:" + BOUNCYCASTLE_VER,
|
||||
sha1 = "5adfef8a71a0933454739264b56283cc73dd2383",
|
||||
src_sha1 = "e50746007d8f1ccd9e49180af87811a1e9ce432d",
|
||||
sha1 = "10c9cf5c1b4d64abeda28ee32fbade3b74373622",
|
||||
src_sha1 = "e5700c1de407652c1af5961ac8a04fab02eda365",
|
||||
)
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<properties>
|
||||
<java.version>11</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<jmh.version>1.36</jmh.version>
|
||||
<jmh.version>1.37</jmh.version>
|
||||
<uberjar.name>benchmarks</uberjar.name>
|
||||
</properties>
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ Bundle-Version: 6.7.0.qualifier
|
|||
Bundle-Vendor: %Bundle-Vendor
|
||||
Bundle-Localization: plugin
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||
Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
|
||||
Import-Package: org.bouncycastle.jce.provider;version="[1.65.0,2.0.0)",
|
||||
org.bouncycastle.openpgp;version="[1.65.0,2.0.0)",
|
||||
org.bouncycastle.openpgp.operator;version="[1.65.0,2.0.0)",
|
||||
|
@ -15,7 +16,6 @@ Import-Package: org.bouncycastle.jce.provider;version="[1.65.0,2.0.0)",
|
|||
org.eclipse.jgit.gpg.bc.internal;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.gpg.bc.internal.keys;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.util.sha1;version="[6.7.0,6.8.0)",
|
||||
org.hamcrest;version="[1.1.0,3.0.0)",
|
||||
org.junit;version="[4.13,5.0.0)",
|
||||
org.junit.runner;version="[4.13,5.0.0)",
|
||||
org.junit.runners;version="[4.13,5.0.0)"
|
||||
|
|
|
@ -7,6 +7,8 @@ Bundle-Version: 6.7.0.qualifier
|
|||
Bundle-Vendor: %Bundle-Vendor
|
||||
Bundle-Localization: plugin
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||
Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)",
|
||||
org.hamcrest.library;bundle-version="[1.3.0,2.0.0)"
|
||||
Import-Package: javax.servlet;version="[2.5.0,5.0.0)",
|
||||
javax.servlet.http;version="[2.5.0,5.0.0)",
|
||||
org.apache.commons.codec;version="[1.6.0,2.0.0)",
|
||||
|
@ -46,8 +48,6 @@ Import-Package: javax.servlet;version="[2.5.0,5.0.0)",
|
|||
org.eclipse.jgit.transport.http.apache;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.transport.resolver;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.util;version="[6.7.0,6.8.0)",
|
||||
org.hamcrest;version="[1.1.0,3.0.0)",
|
||||
org.hamcrest.core;version="[1.1.0,3.0.0)",
|
||||
org.junit;version="[4.13,5.0.0)",
|
||||
org.junit.rules;version="[4.13,5.0.0)",
|
||||
org.junit.runner;version="[4.13,5.0.0)",
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
<message_arguments>
|
||||
<message_argument value="org.eclipse.jgit.junit.ssh.SshTestHarness"/>
|
||||
<message_argument value="publicKey2"/>
|
||||
</message_arguments>
|
||||
</filter>
|
||||
</resource>
|
||||
<resource path="META-INF/MANIFEST.MF">
|
||||
<filter id="923795461">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.17" sequenceNumber="1690316787">
|
||||
<target name="jgit-4.17" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.17" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2020-09/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.18" sequenceNumber="1690316787">
|
||||
<target name="jgit-4.18" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.18" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2020-12/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.19-staging" sequenceNumber="1690316787">
|
||||
<target name="jgit-4.19-staging" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.19-staging" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2021-03/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.20" sequenceNumber="1690316787">
|
||||
<target name="jgit-4.20" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.20" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2021-06/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.21" sequenceNumber="1690316787">
|
||||
<target name="jgit-4.21" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.21" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2021-09/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.22" sequenceNumber="1690316786">
|
||||
<target name="jgit-4.22" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.22" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2021-12/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.23" sequenceNumber="1690316786">
|
||||
<target name="jgit-4.23" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.23" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2022-03/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.24" sequenceNumber="1690316786">
|
||||
<target name="jgit-4.24" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.24" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2022-06/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.25" sequenceNumber="1690316786">
|
||||
<target name="jgit-4.25" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.25" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2022-09/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.26" sequenceNumber="1690316786">
|
||||
<target name="jgit-4.26" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.26" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2022-12/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.27" sequenceNumber="1690316786">
|
||||
<target name="jgit-4.27" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,19 +12,20 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
target "jgit-4.27" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2023-03/" {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.28" sequenceNumber="1690316785">
|
||||
<target name="jgit-4.28" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
|
@ -12,23 +12,24 @@
|
|||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
|
||||
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
|
||||
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
<repository location="https://download.eclipse.org/staging/2023-06"/>
|
||||
<repository location="https://download.eclipse.org/releases/2023-06"/>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
|
||||
<dependencies>
|
||||
|
@ -201,25 +202,25 @@
|
|||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.75</version>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
target "jgit-4.28" with source configurePhase
|
||||
|
||||
include "orbit/R20230531010532-2023-06.tpd"
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/staging/2023-06" {
|
||||
location "https://download.eclipse.org/releases/2023-06" {
|
||||
org.eclipse.osgi lazy
|
||||
}
|
||||
|
|
|
@ -0,0 +1,271 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde?>
|
||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||
<target name="jgit-4.29" sequenceNumber="1693398439">
|
||||
<locations>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
|
||||
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
|
||||
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
|
||||
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
|
||||
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
|
||||
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
|
||||
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
|
||||
<unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
|
||||
<unit id="org.junit" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
|
||||
<unit id="org.objenesis" version="3.3.0"/>
|
||||
<unit id="org.objenesis.source" version="3.3.0"/>
|
||||
<unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
|
||||
<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0"/>
|
||||
</location>
|
||||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
<repository location="https://download.eclipse.org/releases/2023-09"/>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.tukaani</groupId>
|
||||
<artifactId>xz</artifactId>
|
||||
<version>1.9</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.36</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-simple</artifactId>
|
||||
<version>1.7.36</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.sshd</groupId>
|
||||
<artifactId>sshd-osgi</artifactId>
|
||||
<version>2.10.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.sshd</groupId>
|
||||
<artifactId>sshd-sftp</artifactId>
|
||||
<version>2.10.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="mockito">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>5.4.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
<version>5.13.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna-platform</artifactId>
|
||||
<version>5.13.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-http</artifactId>
|
||||
<version>10.0.15</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-io</artifactId>
|
||||
<version>10.0.15</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-security</artifactId>
|
||||
<version>10.0.15</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-server</artifactId>
|
||||
<version>10.0.15</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-servlet</artifactId>
|
||||
<version>10.0.15</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-util</artifactId>
|
||||
<version>10.0.15</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-util-ajax</artifactId>
|
||||
<version>10.0.15</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.servlet</groupId>
|
||||
<artifactId>jakarta.servlet-api</artifactId>
|
||||
<version>4.0.4</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.googlecode.javaewah</groupId>
|
||||
<artifactId>JavaEWAH</artifactId>
|
||||
<version>1.2.3</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hamcrest</groupId>
|
||||
<artifactId>hamcrest</artifactId>
|
||||
<version>2.2</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.10.1</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.bytebuddy</groupId>
|
||||
<artifactId>byte-buddy</artifactId>
|
||||
<version>1.14.5</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.bytebuddy</groupId>
|
||||
<artifactId>byte-buddy-agent</artifactId>
|
||||
<version>1.14.5</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpg-jdk18on</artifactId>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcpkix-jdk18on</artifactId>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcutil-jdk18on</artifactId>
|
||||
<version>1.76</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<version>3.24.2</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>args4j</groupId>
|
||||
<artifactId>args4j</artifactId>
|
||||
<version>2.33</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>1.16.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>1.23.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>1.2</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</location>
|
||||
</locations>
|
||||
</target>
|
|
@ -0,0 +1,8 @@
|
|||
target "jgit-4.29" with source configurePhase
|
||||
|
||||
include "orbit/orbit-4.29.tpd"
|
||||
include "maven/dependencies.tpd"
|
||||
|
||||
location "https://download.eclipse.org/releases/2023-09" {
|
||||
org.eclipse.osgi lazy
|
||||
}
|
|
@ -59,22 +59,22 @@ maven bouncycastle
|
|||
dependency {
|
||||
groupId = "org.bouncycastle"
|
||||
artifactId = "bcpg-jdk18on"
|
||||
version = "1.75"
|
||||
version = "1.76"
|
||||
}
|
||||
dependency {
|
||||
groupId = "org.bouncycastle"
|
||||
artifactId = "bcprov-jdk18on"
|
||||
version = "1.75"
|
||||
version = "1.76"
|
||||
}
|
||||
dependency {
|
||||
groupId = "org.bouncycastle"
|
||||
artifactId = "bcpkix-jdk18on"
|
||||
version = "1.75"
|
||||
version = "1.76"
|
||||
}
|
||||
dependency {
|
||||
groupId = "org.bouncycastle"
|
||||
artifactId = "bcutil-jdk18on"
|
||||
version = "1.75"
|
||||
version = "1.76"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
target "orbit-4.29" with source configurePhase
|
||||
// see https://download.eclipse.org/tools/orbit/downloads/
|
||||
|
||||
location "https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0" {
|
||||
com.jcraft.jsch [0.1.55.v20221112-0806,0.1.55.v20221112-0806]
|
||||
com.jcraft.jsch.source [0.1.55.v20221112-0806,0.1.55.v20221112-0806]
|
||||
com.jcraft.jzlib [1.1.3.v20220502-1820,1.1.3.v20220502-1820]
|
||||
com.jcraft.jzlib.source [1.1.3.v20220502-1820,1.1.3.v20220502-1820]
|
||||
net.i2p.crypto.eddsa [0.3.0.v20220506-1020,0.3.0.v20220506-1020]
|
||||
net.i2p.crypto.eddsa.source [0.3.0.v20220506-1020,0.3.0.v20220506-1020]
|
||||
org.apache.ant [1.10.12.v20211102-1452,1.10.12.v20211102-1452]
|
||||
org.apache.ant.source [1.10.12.v20211102-1452,1.10.12.v20211102-1452]
|
||||
org.apache.httpcomponents.httpclient [4.5.14,4.5.14]
|
||||
org.apache.httpcomponents.httpclient.source [4.5.14,4.5.14]
|
||||
org.apache.httpcomponents.httpcore [4.4.16,4.4.16]
|
||||
org.apache.httpcomponents.httpcore.source [4.4.16,4.4.16]
|
||||
org.hamcrest.core [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
|
||||
org.hamcrest.core.source [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
|
||||
org.hamcrest.library [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
|
||||
org.hamcrest.library.source [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
|
||||
org.junit [4.13.2.v20230809-1000,4.13.2.v20230809-1000]
|
||||
org.junit.source [4.13.2.v20230809-1000,4.13.2.v20230809-1000]
|
||||
org.objenesis [3.3,3.3]
|
||||
org.objenesis.source [3.3,3.3]
|
||||
org.osgi.service.cm [1.6.1.202109301733,1.6.1.202109301733]
|
||||
}
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
<properties>
|
||||
<java.version>11</java.version>
|
||||
<tycho-version>4.0.1</tycho-version>
|
||||
<tycho-version>4.0.2</tycho-version>
|
||||
<target-platform>jgit-4.17</target-platform>
|
||||
</properties>
|
||||
|
||||
|
@ -32,10 +32,6 @@
|
|||
<id>repo.eclipse.org.cbi-releases</id>
|
||||
<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>repo.eclipse.org.cbi-snapshots</id>
|
||||
<url>https://repo.eclipse.org/content/repositories/cbi-snapshots/</url>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
|
||||
<modules>
|
||||
|
|
|
@ -62,9 +62,9 @@ static HashSet<String> changedPathStrings(byte[] data) {
|
|||
HashSet<String> changed_paths = new HashSet<>();
|
||||
for (int i = 0; i < commit_count; i++) {
|
||||
int prior_cumul = i == 0 ? 0 : changed_path_length_cumuls[i - 1];
|
||||
String changed_path = "";
|
||||
String changed_path = ""; //$NON-NLS-1$
|
||||
for (int j = prior_cumul; j < changed_path_length_cumuls[i]; j++) {
|
||||
changed_path += data[bdat_offset + j] + ",";
|
||||
changed_path += data[bdat_offset + j] + ","; //$NON-NLS-1$
|
||||
}
|
||||
changed_paths.add(changed_path);
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ Bundle-Version: 6.7.0.qualifier
|
|||
Bundle-Vendor: %Bundle-Vendor
|
||||
Bundle-Localization: plugin
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||
Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
|
||||
Import-Package: org.apache.sshd.client.config.hosts;version="[2.10.0,2.11.0)",
|
||||
org.apache.sshd.common;version="[2.10.0,2.11.0)",
|
||||
org.apache.sshd.common.auth;version="[2.10.0,2.11.0)",
|
||||
|
@ -31,7 +32,6 @@ Import-Package: org.apache.sshd.client.config.hosts;version="[2.10.0,2.11.0)",
|
|||
org.eclipse.jgit.transport.sshd;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.transport.sshd.agent;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.util;version="[6.7.0,6.8.0)",
|
||||
org.hamcrest;version="[1.1.0,3.0.0)",
|
||||
org.junit;version="[4.13,5.0.0)",
|
||||
org.junit.experimental.theories;version="[4.13,5.0.0)",
|
||||
org.junit.runner;version="[4.13,5.0.0)"
|
||||
|
|
|
@ -7,6 +7,7 @@ Bundle-Version: 6.7.0.qualifier
|
|||
Bundle-Vendor: %Bundle-Vendor
|
||||
Bundle-Localization: plugin
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||
Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
|
||||
Import-Package: com.jcraft.jsch;version="[0.1.54,0.2.0)",
|
||||
org.eclipse.jgit.errors;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.junit;version="[6.7.0,6.8.0)",
|
||||
|
@ -15,7 +16,6 @@ Import-Package: com.jcraft.jsch;version="[0.1.54,0.2.0)",
|
|||
org.eclipse.jgit.transport;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.transport.ssh.jsch;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.util;version="[6.7.0,6.8.0)",
|
||||
org.hamcrest;version="[1.1.0,3.0.0)",
|
||||
org.junit;version="[4.13,5.0.0)",
|
||||
org.junit.experimental.theories;version="[4.13,5.0.0)",
|
||||
org.junit.runner;version="[4.13,5.0.0)"
|
||||
|
|
|
@ -7,6 +7,8 @@ Bundle-Version: 6.7.0.qualifier
|
|||
Bundle-Localization: plugin
|
||||
Bundle-Vendor: %Bundle-Vendor
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||
Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)",
|
||||
org.hamcrest.library;bundle-version="[1.3.0,2.0.0)"
|
||||
Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
|
||||
net.bytebuddy.agent;version="[1.9.0,2.0.0)",
|
||||
net.bytebuddy.dynamic.loading;version="[1.9.0,2.0.0)",
|
||||
|
@ -75,8 +77,6 @@ Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
|
|||
org.eclipse.jgit.util;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.util.io;version="[6.7.0,6.8.0)",
|
||||
org.eclipse.jgit.util.sha1;version="[6.7.0,6.8.0)",
|
||||
org.hamcrest;version="[1.1.0,3.0.0)",
|
||||
org.hamcrest.collection;version="[1.1.0,3.0.0)",
|
||||
org.junit;version="[4.13,5.0.0)",
|
||||
org.junit.experimental.theories;version="[4.13,5.0.0)",
|
||||
org.junit.function;version="[4.13.0,5.0.0)",
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
|
||||
import org.eclipse.jgit.internal.storage.commitgraph.CommitGraphWriter;
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource;
|
||||
import org.eclipse.jgit.internal.storage.reftable.RefCursor;
|
||||
import org.eclipse.jgit.internal.storage.reftable.ReftableConfig;
|
||||
|
@ -979,7 +980,7 @@ public void reftableWithTombstoneNotResurrected() throws Exception {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void produceCommitGraphAllRefsIncludedFromDisk() throws Exception {
|
||||
public void produceCommitGraphOnlyHeadsAndTags() throws Exception {
|
||||
String tag = "refs/tags/tag1";
|
||||
String head = "refs/heads/head1";
|
||||
String nonHead = "refs/something/nonHead";
|
||||
|
@ -1001,19 +1002,20 @@ public void produceCommitGraphAllRefsIncludedFromDisk() throws Exception {
|
|||
CommitGraph cg = gcPack.getCommitGraph(reader);
|
||||
assertNotNull(cg);
|
||||
|
||||
assertTrue("all commits in commit graph", cg.getCommitCnt() == 3);
|
||||
assertTrue("Only heads and tags reachable commits in commit graph",
|
||||
cg.getCommitCnt() == 2);
|
||||
// GC packed
|
||||
assertTrue("tag referenced commit is in graph",
|
||||
cg.findGraphPosition(rootCommitTagged) != -1);
|
||||
assertTrue("head referenced commit is in graph",
|
||||
cg.findGraphPosition(headTip) != -1);
|
||||
// GC_REST packed
|
||||
assertTrue("nonHead referenced commit is in graph",
|
||||
cg.findGraphPosition(nonHeadTip) != -1);
|
||||
// GC_REST not in commit graph
|
||||
assertEquals("nonHead referenced commit is NOT in graph",
|
||||
-1, cg.findGraphPosition(nonHeadTip));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void produceCommitGraphAllRefsIncludedFromCache() throws Exception {
|
||||
public void produceCommitGraphOnlyHeadsAndTagsIncludedFromCache() throws Exception {
|
||||
String tag = "refs/tags/tag1";
|
||||
String head = "refs/heads/head1";
|
||||
String nonHead = "refs/something/nonHead";
|
||||
|
@ -1043,15 +1045,16 @@ public void produceCommitGraphAllRefsIncludedFromCache() throws Exception {
|
|||
assertTrue("commit graph read time is recorded",
|
||||
reader.stats.readCommitGraphMicros > 0);
|
||||
|
||||
assertTrue("all commits in commit graph", cachedCG.getCommitCnt() == 3);
|
||||
assertTrue("Only heads and tags reachable commits in commit graph",
|
||||
cachedCG.getCommitCnt() == 2);
|
||||
// GC packed
|
||||
assertTrue("tag referenced commit is in graph",
|
||||
cachedCG.findGraphPosition(rootCommitTagged) != -1);
|
||||
assertTrue("head referenced commit is in graph",
|
||||
cachedCG.findGraphPosition(headTip) != -1);
|
||||
// GC_REST packed
|
||||
assertTrue("nonHead referenced commit is in graph",
|
||||
cachedCG.findGraphPosition(nonHeadTip) != -1);
|
||||
// GC_REST not in commit graph
|
||||
assertEquals("nonHead referenced commit is not in graph",
|
||||
-1, cachedCG.findGraphPosition(nonHeadTip));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -1101,6 +1104,22 @@ public void commitGraphWithoutGCrestPack() throws Exception {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void produceCommitGraphAndBloomFilter() throws Exception {
|
||||
String head = "refs/heads/head1";
|
||||
|
||||
git.branch(head).commit().message("0").noParents().create();
|
||||
|
||||
gcWithCommitGraphAndBloomFilter();
|
||||
|
||||
assertEquals(1, odb.getPacks().length);
|
||||
DfsPackFile pack = odb.getPacks()[0];
|
||||
DfsPackDescription desc = pack.getPackDescription();
|
||||
CommitGraphWriter.Stats stats = desc.getCommitGraphStats();
|
||||
assertNotNull(stats);
|
||||
assertEquals(1, stats.getChangedPathFiltersComputed());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void objectSizeIdx_reachableBlob_bigEnough_indexed() throws Exception {
|
||||
String master = "refs/heads/master";
|
||||
|
@ -1175,6 +1194,13 @@ private void gcWithCommitGraph() throws IOException {
|
|||
run(gc);
|
||||
}
|
||||
|
||||
private void gcWithCommitGraphAndBloomFilter() throws IOException {
|
||||
DfsGarbageCollector gc = new DfsGarbageCollector(repo);
|
||||
gc.setWriteCommitGraph(true);
|
||||
gc.setWriteBloomFilter(true);
|
||||
run(gc);
|
||||
}
|
||||
|
||||
private void gcWithObjectSizeIndex(int threshold) throws IOException {
|
||||
DfsGarbageCollector gc = new DfsGarbageCollector(repo);
|
||||
gc.getPackConfig().setMinBytesForObjSizeIndex(threshold);
|
||||
|
|
|
@ -18,8 +18,12 @@
|
|||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.zip.Deflater;
|
||||
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource;
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsReader.PackLoadListener;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackExt;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackOutputStream;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackWriter;
|
||||
|
@ -130,6 +134,93 @@ public void testLoadObjectSizeIndex_noIndex() throws IOException {
|
|||
assertFalse(pack.hasObjectSizeIndex(reader));
|
||||
}
|
||||
|
||||
private static class TestPackLoadListener implements PackLoadListener {
|
||||
final Map<PackExt, Integer> indexLoadCount = new HashMap<>();
|
||||
|
||||
int blockLoadCount;
|
||||
|
||||
@Override
|
||||
public void onIndexLoad(String packName, PackSource src, PackExt ext,
|
||||
long size, Object loadedIdx) {
|
||||
indexLoadCount.merge(ext, 1, Integer::sum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockLoad(String packName, PackSource src, PackExt ext, long position,
|
||||
DfsBlockData dfsBlockData) {
|
||||
blockLoadCount += 1;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIndexLoadCallback_indexNotInCache() throws IOException {
|
||||
bypassCache = false;
|
||||
clearCache = true;
|
||||
setObjectSizeIndexMinBytes(-1);
|
||||
setupPack(512, 800);
|
||||
|
||||
TestPackLoadListener tal = new TestPackLoadListener();
|
||||
DfsReader reader = db.getObjectDatabase().newReader();
|
||||
reader.addPackLoadListener(tal);
|
||||
DfsPackFile pack = db.getObjectDatabase().getPacks()[0];
|
||||
pack.getPackIndex(reader);
|
||||
|
||||
assertEquals(1, tal.indexLoadCount.get(PackExt.INDEX).intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIndexLoadCallback_indexInCache() throws IOException {
|
||||
bypassCache = false;
|
||||
clearCache = false;
|
||||
setObjectSizeIndexMinBytes(-1);
|
||||
setupPack(512, 800);
|
||||
|
||||
TestPackLoadListener tal = new TestPackLoadListener();
|
||||
DfsReader reader = db.getObjectDatabase().newReader();
|
||||
reader.addPackLoadListener(tal);
|
||||
DfsPackFile pack = db.getObjectDatabase().getPacks()[0];
|
||||
pack.getPackIndex(reader);
|
||||
pack.getPackIndex(reader);
|
||||
pack.getPackIndex(reader);
|
||||
|
||||
assertEquals(1, tal.indexLoadCount.get(PackExt.INDEX).intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIndexLoadCallback_multipleReads() throws IOException {
|
||||
bypassCache = false;
|
||||
clearCache = true;
|
||||
setObjectSizeIndexMinBytes(-1);
|
||||
setupPack(512, 800);
|
||||
|
||||
TestPackLoadListener tal = new TestPackLoadListener();
|
||||
DfsReader reader = db.getObjectDatabase().newReader();
|
||||
reader.addPackLoadListener(tal);
|
||||
DfsPackFile pack = db.getObjectDatabase().getPacks()[0];
|
||||
pack.getPackIndex(reader);
|
||||
pack.getPackIndex(reader);
|
||||
pack.getPackIndex(reader);
|
||||
|
||||
assertEquals(1, tal.indexLoadCount.get(PackExt.INDEX).intValue());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testBlockLoadCallback_loadInCache() throws IOException {
|
||||
bypassCache = false;
|
||||
clearCache = true;
|
||||
setObjectSizeIndexMinBytes(-1);
|
||||
setupPack(512, 800);
|
||||
|
||||
TestPackLoadListener tal = new TestPackLoadListener();
|
||||
DfsReader reader = db.getObjectDatabase().newReader();
|
||||
reader.addPackLoadListener(tal);
|
||||
DfsPackFile pack = db.getObjectDatabase().getPacks()[0];
|
||||
ObjectId anObject = pack.getPackIndex(reader).getObjectId(0);
|
||||
pack.get(reader, anObject).getBytes();
|
||||
assertEquals(2, tal.blockLoadCount);
|
||||
}
|
||||
|
||||
private ObjectId setupPack(int bs, int ps) throws IOException {
|
||||
DfsBlockCacheConfig cfg = new DfsBlockCacheConfig().setBlockSize(bs)
|
||||
.setBlockLimit(bs * 100).setStreamRatio(bypassCache ? 0F : 1F);
|
||||
|
|
|
@ -11,15 +11,20 @@
|
|||
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_PACK_SECTION;
|
||||
import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource;
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsReader.PackLoadListener;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackExt;
|
||||
import org.eclipse.jgit.junit.JGitTestUtil;
|
||||
import org.eclipse.jgit.junit.TestRng;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.lib.ObjectInserter;
|
||||
import org.junit.Before;
|
||||
|
@ -40,31 +45,31 @@ public void isNotLargerThan_objAboveThreshold()
|
|||
ObjectId obj = insertBlobWithSize(200);
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
assertFalse("limit < threshold < obj",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 50));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 50));
|
||||
assertEquals(1, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(1, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexMiss);
|
||||
|
||||
assertFalse("limit = threshold < obj",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 100));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 100));
|
||||
assertEquals(2, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(2, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexMiss);
|
||||
|
||||
assertFalse("threshold < limit < obj",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 150));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 150));
|
||||
assertEquals(3, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(3, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexMiss);
|
||||
|
||||
assertTrue("threshold < limit = obj",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 200));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 200));
|
||||
assertEquals(4, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(4, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexMiss);
|
||||
|
||||
assertTrue("threshold < obj < limit",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 250));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 250));
|
||||
assertEquals(5, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(5, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexMiss);
|
||||
|
@ -80,31 +85,31 @@ public void isNotLargerThan_objBelowThreshold()
|
|||
ObjectId obj = insertBlobWithSize(50);
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
assertFalse("limit < obj < threshold",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 10));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 10));
|
||||
assertEquals(1, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(1, ctx.stats.objectSizeIndexMiss);
|
||||
|
||||
assertTrue("limit = obj < threshold",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 50));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 50));
|
||||
assertEquals(2, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(2, ctx.stats.objectSizeIndexMiss);
|
||||
|
||||
assertTrue("obj < limit < threshold",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 80));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 80));
|
||||
assertEquals(3, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(3, ctx.stats.objectSizeIndexMiss);
|
||||
|
||||
assertTrue("obj < limit = threshold",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 100));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 100));
|
||||
assertEquals(4, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(4, ctx.stats.objectSizeIndexMiss);
|
||||
|
||||
assertTrue("obj < threshold < limit",
|
||||
ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 120));
|
||||
ctx.isNotLargerThan(obj, OBJ_BLOB, 120));
|
||||
assertEquals(5, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexHit);
|
||||
assertEquals(5, ctx.stats.objectSizeIndexMiss);
|
||||
|
@ -116,11 +121,11 @@ public void isNotLargerThan_emptyIdx() throws IOException {
|
|||
setObjectSizeIndexMinBytes(100);
|
||||
ObjectId obj = insertBlobWithSize(10);
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
assertFalse(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 0));
|
||||
assertTrue(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 10));
|
||||
assertTrue(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 40));
|
||||
assertTrue(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 50));
|
||||
assertTrue(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 100));
|
||||
assertFalse(ctx.isNotLargerThan(obj, OBJ_BLOB, 0));
|
||||
assertTrue(ctx.isNotLargerThan(obj, OBJ_BLOB, 10));
|
||||
assertTrue(ctx.isNotLargerThan(obj, OBJ_BLOB, 40));
|
||||
assertTrue(ctx.isNotLargerThan(obj, OBJ_BLOB, 50));
|
||||
assertTrue(ctx.isNotLargerThan(obj, OBJ_BLOB, 100));
|
||||
|
||||
assertEquals(5, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(5, ctx.stats.objectSizeIndexMiss);
|
||||
|
@ -133,11 +138,11 @@ public void isNotLargerThan_noObjectSizeIndex() throws IOException {
|
|||
setObjectSizeIndexMinBytes(-1);
|
||||
ObjectId obj = insertBlobWithSize(10);
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
assertFalse(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 0));
|
||||
assertTrue(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 10));
|
||||
assertTrue(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 40));
|
||||
assertTrue(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 50));
|
||||
assertTrue(ctx.isNotLargerThan(obj, Constants.OBJ_BLOB, 100));
|
||||
assertFalse(ctx.isNotLargerThan(obj, OBJ_BLOB, 0));
|
||||
assertTrue(ctx.isNotLargerThan(obj, OBJ_BLOB, 10));
|
||||
assertTrue(ctx.isNotLargerThan(obj, OBJ_BLOB, 40));
|
||||
assertTrue(ctx.isNotLargerThan(obj, OBJ_BLOB, 50));
|
||||
assertTrue(ctx.isNotLargerThan(obj, OBJ_BLOB, 100));
|
||||
|
||||
assertEquals(5, ctx.stats.isNotLargerThanCallCount);
|
||||
assertEquals(0, ctx.stats.objectSizeIndexMiss);
|
||||
|
@ -145,12 +150,103 @@ public void isNotLargerThan_noObjectSizeIndex() throws IOException {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void packLoadListener_noInvocations() throws IOException {
|
||||
insertBlobWithSize(100);
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
CounterPackLoadListener listener = new CounterPackLoadListener();
|
||||
ctx.addPackLoadListener(listener);
|
||||
assertEquals(null, listener.callsPerExt.get(PackExt.INDEX));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void packLoadListener_has_openIdx() throws IOException {
|
||||
ObjectId obj = insertBlobWithSize(100);
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
CounterPackLoadListener listener = new CounterPackLoadListener();
|
||||
ctx.addPackLoadListener(listener);
|
||||
boolean has = ctx.has(obj);
|
||||
assertTrue(has);
|
||||
assertEquals(Integer.valueOf(1), listener.callsPerExt.get(PackExt.INDEX));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void packLoadListener_notLargerThan_openMultipleIndices() throws IOException {
|
||||
setObjectSizeIndexMinBytes(100);
|
||||
ObjectId obj = insertBlobWithSize(200);
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
CounterPackLoadListener listener = new CounterPackLoadListener();
|
||||
ctx.addPackLoadListener(listener);
|
||||
boolean notLargerThan = ctx.isNotLargerThan(obj, OBJ_BLOB, 1000);
|
||||
assertTrue(notLargerThan);
|
||||
assertEquals(Integer.valueOf(1), listener.callsPerExt.get(PackExt.INDEX));
|
||||
assertEquals(Integer.valueOf(1), listener.callsPerExt.get(PackExt.OBJECT_SIZE_INDEX));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void packLoadListener_has_openMultipleIndices() throws IOException {
|
||||
setObjectSizeIndexMinBytes(100);
|
||||
insertBlobWithSize(200);
|
||||
insertBlobWithSize(230);
|
||||
insertBlobWithSize(100);
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
CounterPackLoadListener listener = new CounterPackLoadListener();
|
||||
ctx.addPackLoadListener(listener);
|
||||
ObjectId oid = ObjectId.fromString("aa48de2aa61d9dffa8a05439dc115fe82f10f129");
|
||||
boolean has = ctx.has(oid);
|
||||
assertFalse(has);
|
||||
// Open 3 indices trying to find the pack
|
||||
assertEquals(Integer.valueOf(3), listener.callsPerExt.get(PackExt.INDEX));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void packLoadListener_has_repeatedCalls_openMultipleIndices() throws IOException {
|
||||
// Two objects NOT in the repo
|
||||
ObjectId oid = ObjectId.fromString("aa48de2aa61d9dffa8a05439dc115fe82f10f129");
|
||||
ObjectId oid2 = ObjectId.fromString("aa48de2aa61d9dffa8a05439dc115fe82f10f130");
|
||||
|
||||
setObjectSizeIndexMinBytes(100);
|
||||
insertBlobWithSize(200);
|
||||
insertBlobWithSize(230);
|
||||
insertBlobWithSize(100);
|
||||
CounterPackLoadListener listener = new CounterPackLoadListener();
|
||||
try (DfsReader ctx = db.getObjectDatabase().newReader()) {
|
||||
ctx.addPackLoadListener(listener);
|
||||
boolean has = ctx.has(oid);
|
||||
ctx.has(oid);
|
||||
ctx.has(oid2);
|
||||
assertFalse(has);
|
||||
// The 3 indices were loaded only once each
|
||||
assertEquals(Integer.valueOf(3), listener.callsPerExt.get(PackExt.INDEX));
|
||||
}
|
||||
}
|
||||
|
||||
private static class CounterPackLoadListener implements PackLoadListener {
|
||||
final Map<PackExt, Integer> callsPerExt = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void onIndexLoad(String packName, PackSource src, PackExt ext, long size,
|
||||
Object loadedIdx) {
|
||||
callsPerExt.merge(ext, 1, Integer::sum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockLoad(String packName, PackSource src, PackExt ext,
|
||||
long size, DfsBlockData dfsBlockData) {
|
||||
}
|
||||
}
|
||||
|
||||
private ObjectId insertBlobWithSize(int size)
|
||||
throws IOException {
|
||||
TestRng testRng = new TestRng(JGitTestUtil.getName());
|
||||
ObjectId oid;
|
||||
try (ObjectInserter ins = db.newObjectInserter()) {
|
||||
oid = ins.insert(Constants.OBJ_BLOB,
|
||||
oid = ins.insert(OBJ_BLOB,
|
||||
testRng.nextBytes(size));
|
||||
ins.flush();
|
||||
}
|
||||
|
|
|
@ -261,7 +261,7 @@ public void testDelta_FailsOver2GiB() throws Exception {
|
|||
new PackIndexWriterV1(f).write(list, footer);
|
||||
}
|
||||
|
||||
Pack pack = new Pack(packName, null);
|
||||
Pack pack = new Pack(repo.getConfig(), packName, null);
|
||||
try {
|
||||
pack.get(wc, b);
|
||||
fail("expected LargeObjectException.ExceedsByteArrayLimit");
|
||||
|
|
|
@ -1482,7 +1482,9 @@ public void testCommitTemplateConfig()
|
|||
|
||||
File workTree = tmp.newFolder("dummy-worktree");
|
||||
File tempFile = tmp.newFile("testCommitTemplate-");
|
||||
Repository repo = FileRepositoryBuilder.create(workTree);
|
||||
Repository repo = FileRepositoryBuilder
|
||||
.create(new File(workTree, ".git"));
|
||||
repo.create();
|
||||
String templateContent = "content of the template";
|
||||
JGitTestUtil.write(tempFile, templateContent);
|
||||
String expectedTemplatePath = tempFile.getPath();
|
||||
|
@ -1532,7 +1534,9 @@ public void testCommitTemplateEncoding()
|
|||
throws ConfigInvalidException, IOException {
|
||||
Config config = new Config(null);
|
||||
File workTree = tmp.newFolder("dummy-worktree");
|
||||
Repository repo = FileRepositoryBuilder.create(workTree);
|
||||
Repository repo = FileRepositoryBuilder
|
||||
.create(new File(workTree, ".git"));
|
||||
repo.create();
|
||||
File tempFile = tmp.newFile("testCommitTemplate-");
|
||||
String templateContent = "content of the template";
|
||||
JGitTestUtil.write(tempFile, templateContent);
|
||||
|
@ -1554,7 +1558,9 @@ public void testCommitTemplateWithInvalidEncoding()
|
|||
Config config = new Config(null);
|
||||
File workTree = tmp.newFolder("dummy-worktree");
|
||||
File tempFile = tmp.newFile("testCommitTemplate-");
|
||||
Repository repo = FileRepositoryBuilder.create(workTree);
|
||||
Repository repo = FileRepositoryBuilder
|
||||
.create(new File(workTree, ".git"));
|
||||
repo.create();
|
||||
String templateContent = "content of the template";
|
||||
JGitTestUtil.write(tempFile, templateContent);
|
||||
config = parse("[i18n]\n\tcommitEncoding = invalidEcoding\n"
|
||||
|
@ -1569,7 +1575,9 @@ public void testCommitTemplateWithInvalidPath()
|
|||
Config config = new Config(null);
|
||||
File workTree = tmp.newFolder("dummy-worktree");
|
||||
File tempFile = tmp.newFile("testCommitTemplate-");
|
||||
Repository repo = FileRepositoryBuilder.create(workTree);
|
||||
Repository repo = FileRepositoryBuilder
|
||||
.create(new File(workTree, ".git"));
|
||||
repo.create();
|
||||
String templateContent = "content of the template";
|
||||
JGitTestUtil.write(tempFile, templateContent);
|
||||
// commit message encoding
|
||||
|
|
|
@ -0,0 +1,301 @@
|
|||
/*
|
||||
* Copyright (C) 2023, Thomas Wolf <twolf@apache.org> and others
|
||||
*
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the Eclipse Distribution License v. 1.0 which is available at
|
||||
* https://www.eclipse.org/org/documents/edl-v10.php.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
package org.eclipse.jgit.storage.file;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import org.eclipse.jgit.util.FS;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
|
||||
public class UserConfigFileTest {
|
||||
|
||||
@Rule
|
||||
public TemporaryFolder tmp = new TemporaryFolder();
|
||||
|
||||
@Test
|
||||
public void testParentOnlyLoad() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadBoth() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
Files.writeString(user, "[user]\n\temail = a.u.thor@example.com");
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOverwriteChild() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
Files.writeString(user, "[user]\n\temail = a.u.thor@example.com");
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
config.setString("user", null, "name", "A U Thor");
|
||||
assertEquals("A U Thor", config.getString("user", null, "name"));
|
||||
config.save();
|
||||
UserConfigFile config2 = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config2.load();
|
||||
assertEquals("A U Thor", config2.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
FileBasedConfig cfg = new FileBasedConfig(null, xdg.toFile(),
|
||||
FS.DETECTED);
|
||||
cfg.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
cfg.getString("user", null, "name"));
|
||||
assertNull(cfg.getString("user", null, "email"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnset() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
Files.writeString(user, "[user]\n\temail = a.u.thor@example.com");
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
config.setString("user", null, "name", "A U Thor");
|
||||
assertEquals("A U Thor", config.getString("user", null, "name"));
|
||||
config.unset("user", null, "name");
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
config.save();
|
||||
UserConfigFile config2 = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config2.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config2.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
FileBasedConfig cfg = new FileBasedConfig(null, user.toFile(),
|
||||
FS.DETECTED);
|
||||
cfg.load();
|
||||
assertNull(cfg.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
cfg.getString("user", null, "email"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnsetSection() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
Files.writeString(user, "[user]\n\temail = a.u.thor@example.com");
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
config.unsetSection("user", null);
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
config.save();
|
||||
assertTrue(Files.readString(user).strip().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoChild() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertNull(config.getString("user", null, "email"));
|
||||
config.setString("user", null, "email", "a.u.thor@example.com");
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
config.save();
|
||||
assertFalse(Files.exists(user));
|
||||
UserConfigFile config2 = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config2.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config2.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config2.getString("user", null, "email"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoFiles() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertNull(config.getString("user", null, "name"));
|
||||
assertNull(config.getString("user", null, "email"));
|
||||
config.setString("user", null, "name", "Archibald Ulysses Thor");
|
||||
config.setString("user", null, "email", "a.u.thor@example.com");
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
config.save();
|
||||
assertTrue(Files.exists(user));
|
||||
assertFalse(Files.exists(xdg));
|
||||
UserConfigFile config2 = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config2.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config2.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config2.getString("user", null, "email"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetInXdg() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
config.setString("user", null, "email", "a.u.thor@example.com");
|
||||
config.save();
|
||||
assertFalse(Files.exists(user));
|
||||
FileBasedConfig cfg = new FileBasedConfig(null, xdg.toFile(),
|
||||
FS.DETECTED);
|
||||
cfg.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
cfg.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
cfg.getString("user", null, "email"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUserConfigCreated() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
Thread.sleep(3000); // Avoid racily clean isOutdated() below.
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
Files.writeString(user,
|
||||
"[user]\n\temail = a.u.thor@example.com\n\tname = A U Thor");
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertTrue(config.isOutdated());
|
||||
config.load();
|
||||
assertEquals("A U Thor", config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUserConfigDeleted() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
Files.writeString(user,
|
||||
"[user]\n\temail = a.u.thor@example.com\n\tname = A U Thor");
|
||||
Thread.sleep(3000); // Avoid racily clean isOutdated() below.
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("A U Thor", config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
Files.delete(user);
|
||||
assertEquals("A U Thor", config.getString("user", null, "name"));
|
||||
assertEquals("a.u.thor@example.com",
|
||||
config.getString("user", null, "email"));
|
||||
assertTrue(config.isOutdated());
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertNull(config.getString("user", null, "email"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testXdgConfigDeleted() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
Thread.sleep(3000); // Avoid racily clean isOutdated() below.
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
Files.delete(xdg);
|
||||
assertEquals("Archibald Ulysses Thor",
|
||||
config.getString("user", null, "name"));
|
||||
assertTrue(config.isOutdated());
|
||||
config.load();
|
||||
assertNull(config.getString("user", null, "name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testXdgConfigDeletedUserConfigExists() throws Exception {
|
||||
Path xdg = tmp.getRoot().toPath().resolve("xdg.cfg");
|
||||
Files.writeString(xdg, "[user]\n\tname = Archibald Ulysses Thor");
|
||||
Path user = tmp.getRoot().toPath().resolve("user.cfg");
|
||||
Files.writeString(user,
|
||||
"[user]\n\temail = a.u.thor@example.com\n\tname = A U Thor");
|
||||
Thread.sleep(3000); // Avoid racily clean isOutdated() below.
|
||||
UserConfigFile config = new UserConfigFile(null, user.toFile(),
|
||||
xdg.toFile(), FS.DETECTED);
|
||||
config.load();
|
||||
assertEquals("A U Thor", config.getString("user", null, "name"));
|
||||
Files.delete(xdg);
|
||||
assertTrue(config.isOutdated());
|
||||
config.load();
|
||||
assertEquals("A U Thor", config.getString("user", null, "name"));
|
||||
}
|
||||
|
||||
}
|
|
@ -124,6 +124,7 @@ Export-Package: org.eclipse.jgit.annotations;version="6.7.0",
|
|||
x-friends:="org.eclipse.jgit.ssh.apache,
|
||||
org.eclipse.jgit.ssh.jsch,
|
||||
org.eclipse.jgit.test",
|
||||
org.eclipse.jgit.internal.util;version="6.7.0";x-internal:=true,
|
||||
org.eclipse.jgit.lib;version="6.7.0";
|
||||
uses:="org.eclipse.jgit.transport,
|
||||
org.eclipse.jgit.util.sha1,
|
||||
|
|
|
@ -100,7 +100,9 @@ else if (size < cache.getBlockSize())
|
|||
|
||||
DfsBlock getOrLoadBlock(long pos, DfsReader ctx) throws IOException {
|
||||
try (LazyChannel c = new LazyChannel(ctx, desc, ext)) {
|
||||
return cache.getOrLoad(this, pos, ctx, c);
|
||||
DfsBlock block = cache.getOrLoad(this, pos, ctx, c);
|
||||
ctx.emitBlockLoad(this, pos, block);
|
||||
return block;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.eclipse.jgit.internal.JGitText;
|
||||
import org.eclipse.jgit.internal.storage.commitgraph.CommitGraphWriter;
|
||||
|
@ -783,19 +782,17 @@ private void writeCommitGraph(DfsPackDescription pack, ProgressMonitor pm)
|
|||
return;
|
||||
}
|
||||
|
||||
Set<ObjectId> allTips = refsBefore.stream().map(Ref::getObjectId)
|
||||
.collect(Collectors.toUnmodifiableSet());
|
||||
|
||||
try (DfsOutputStream out = objdb.writeFile(pack, COMMIT_GRAPH);
|
||||
RevWalk pool = new RevWalk(ctx)) {
|
||||
GraphCommits gcs = GraphCommits.fromWalk(pm, allTips, pool);
|
||||
GraphCommits gcs = GraphCommits.fromWalk(pm, allHeadsAndTags, pool);
|
||||
CountingOutputStream cnt = new CountingOutputStream(out);
|
||||
CommitGraphWriter writer = new CommitGraphWriter(gcs,
|
||||
writeBloomFilter);
|
||||
writer.write(pm, cnt);
|
||||
CommitGraphWriter.Stats stats = writer.write(pm, cnt);
|
||||
pack.addFileExt(COMMIT_GRAPH);
|
||||
pack.setFileSize(COMMIT_GRAPH, cnt.getCount());
|
||||
pack.setBlockSize(COMMIT_GRAPH, out.blockSize());
|
||||
pack.setCommitGraphStats(stats);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
import java.util.Comparator;
|
||||
|
||||
import org.eclipse.jgit.annotations.NonNull;
|
||||
import org.eclipse.jgit.internal.storage.commitgraph.CommitGraphWriter;
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackExt;
|
||||
import org.eclipse.jgit.internal.storage.reftable.ReftableWriter;
|
||||
|
@ -144,6 +145,7 @@ static Comparator<DfsPackDescription> reuseComparator() {
|
|||
|
||||
private PackStatistics packStats;
|
||||
private ReftableWriter.Stats refStats;
|
||||
private CommitGraphWriter.Stats commitGraphStats;
|
||||
private int extensions;
|
||||
private int indexVersion;
|
||||
private long estimatedPackSize;
|
||||
|
@ -480,6 +482,19 @@ void setReftableStats(ReftableWriter.Stats stats) {
|
|||
setBlockSize(REFTABLE, stats.refBlockSize());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get stats from the sibling commit graph, if created.
|
||||
*
|
||||
* @return stats from the sibling commit graph, if created.
|
||||
*/
|
||||
public CommitGraphWriter.Stats getCommitGraphStats() {
|
||||
return commitGraphStats;
|
||||
}
|
||||
|
||||
void setCommitGraphStats(CommitGraphWriter.Stats stats) {
|
||||
this.commitGraphStats = stats;
|
||||
}
|
||||
|
||||
/**
|
||||
* Discard the pack statistics, if it was populated.
|
||||
*
|
||||
|
|
|
@ -181,6 +181,7 @@ private PackIndex idx(DfsReader ctx) throws IOException {
|
|||
PackIndex idx = idxref.get();
|
||||
if (index == null && idx != null) {
|
||||
index = idx;
|
||||
ctx.emitIndexLoad(desc, INDEX, System.identityHashCode(idx));
|
||||
}
|
||||
return index;
|
||||
} catch (IOException e) {
|
||||
|
@ -226,6 +227,7 @@ public PackBitmapIndex getBitmapIndex(DfsReader ctx) throws IOException {
|
|||
PackBitmapIndex bmidx = idxref.get();
|
||||
if (bitmapIndex == null && bmidx != null) {
|
||||
bitmapIndex = bmidx;
|
||||
ctx.emitIndexLoad(desc, BITMAP_INDEX, System.identityHashCode(bmidx));
|
||||
}
|
||||
return bitmapIndex;
|
||||
}
|
||||
|
@ -263,6 +265,7 @@ public CommitGraph getCommitGraph(DfsReader ctx) throws IOException {
|
|||
CommitGraph cg = cgref.get();
|
||||
if (commitGraph == null && cg != null) {
|
||||
commitGraph = cg;
|
||||
ctx.emitIndexLoad(desc, COMMIT_GRAPH, System.identityHashCode(cg));
|
||||
}
|
||||
return commitGraph;
|
||||
}
|
||||
|
@ -296,6 +299,7 @@ public PackReverseIndex getReverseIdx(DfsReader ctx) throws IOException {
|
|||
PackReverseIndex revidx = revref.get();
|
||||
if (reverseIndex == null && revidx != null) {
|
||||
reverseIndex = revidx;
|
||||
ctx.emitIndexLoad(desc, REVERSE_INDEX, System.identityHashCode(revidx));
|
||||
}
|
||||
return reverseIndex;
|
||||
}
|
||||
|
@ -323,8 +327,9 @@ private PackObjectSizeIndex getObjectSizeIndex(DfsReader ctx)
|
|||
ctx.stats.objectSizeIndexCacheHit++;
|
||||
}
|
||||
PackObjectSizeIndex sizeIdx = sizeIdxRef.get();
|
||||
if (sizeIdx != null) {
|
||||
if (objectSizeIndex == null && sizeIdx != null) {
|
||||
objectSizeIndex = sizeIdx;
|
||||
ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, System.identityHashCode(sizeIdx));
|
||||
}
|
||||
} finally {
|
||||
objectSizeIndexLoadAttempted = true;
|
||||
|
@ -426,6 +431,7 @@ void copyPackAsIs(PackOutputStream out, DfsReader ctx) throws IOException {
|
|||
if (sz > 0) {
|
||||
rc.setReadAheadBytes(sz);
|
||||
}
|
||||
//TODO(ifrade): report ctx.emitBlockLoaded for this copy
|
||||
if (cache.shouldCopyThroughCache(length)) {
|
||||
copyPackThroughCache(out, ctx, rc);
|
||||
} else {
|
||||
|
@ -1171,6 +1177,7 @@ private DfsBlockCache.Ref<PackIndex> loadPackIndex(
|
|||
try (ReadableChannel rc = ctx.db.openFile(desc, INDEX)) {
|
||||
PackIndex idx = PackIndex.read(alignTo8kBlocks(rc));
|
||||
ctx.stats.readIdxBytes += rc.position();
|
||||
ctx.emitIndexLoad(desc, INDEX, System.identityHashCode(idx));
|
||||
index = idx;
|
||||
return new DfsBlockCache.Ref<>(
|
||||
idxKey,
|
||||
|
@ -1197,6 +1204,7 @@ private DfsBlockCache.Ref<PackReverseIndex> loadReverseIdx(
|
|||
long start = System.nanoTime();
|
||||
PackReverseIndex revidx = PackReverseIndexFactory.computeFromIndex(idx);
|
||||
reverseIndex = revidx;
|
||||
ctx.emitIndexLoad(desc, REVERSE_INDEX, System.identityHashCode(revidx));
|
||||
ctx.stats.readReverseIdxMicros += elapsedMicros(start);
|
||||
return new DfsBlockCache.Ref<>(
|
||||
revKey,
|
||||
|
@ -1216,6 +1224,7 @@ private DfsBlockCache.Ref<PackObjectSizeIndex> loadObjectSizeIndex(
|
|||
objectSizeIndex = PackObjectSizeIndexLoader
|
||||
.load(Channels.newInputStream(rc));
|
||||
size = rc.position();
|
||||
ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, System.identityHashCode(objectSizeIndex));
|
||||
} catch (IOException e) {
|
||||
parsingError = e;
|
||||
}
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
import org.eclipse.jgit.internal.JGitText;
|
||||
import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackList;
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource;
|
||||
import org.eclipse.jgit.internal.storage.dfs.DfsReader.PackLoadListener.DfsBlockData;
|
||||
import org.eclipse.jgit.internal.storage.file.BitmapIndexImpl;
|
||||
import org.eclipse.jgit.internal.storage.file.PackBitmapIndex;
|
||||
import org.eclipse.jgit.internal.storage.file.PackIndex;
|
||||
|
@ -41,6 +43,7 @@
|
|||
import org.eclipse.jgit.internal.storage.pack.CachedPack;
|
||||
import org.eclipse.jgit.internal.storage.pack.ObjectReuseAsIs;
|
||||
import org.eclipse.jgit.internal.storage.pack.ObjectToPack;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackExt;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackOutputStream;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackWriter;
|
||||
import org.eclipse.jgit.lib.AbbreviatedObjectId;
|
||||
|
@ -79,6 +82,7 @@ public class DfsReader extends ObjectReader implements ObjectReuseAsIs {
|
|||
private DeltaBaseCache baseCache;
|
||||
private DfsPackFile last;
|
||||
private boolean avoidUnreachable;
|
||||
private List<PackLoadListener> packLoadListeners = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Initialize a new DfsReader
|
||||
|
@ -834,6 +838,100 @@ public DfsReaderIoStats getIoStats() {
|
|||
return new DfsReaderIoStats(stats);
|
||||
}
|
||||
|
||||
/** Announces when data is loaded by reader */
|
||||
protected interface PackLoadListener {
|
||||
/**
|
||||
* Immutable copy of a DFS block metadata
|
||||
*/
|
||||
class DfsBlockData {
|
||||
private final int identityHash;
|
||||
private final int size;
|
||||
|
||||
static DfsBlockData of(DfsBlock src) {
|
||||
return new DfsBlockData(src);
|
||||
}
|
||||
|
||||
private DfsBlockData(DfsBlock src) {
|
||||
this.identityHash = System.identityHashCode(src);
|
||||
this.size = src.size();
|
||||
}
|
||||
|
||||
public int getIdentityHash() {
|
||||
return identityHash;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return size;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called when an index reference (e.g. primary index, reverse
|
||||
* index, ...) is set in the reader, regarless if loaded from scratch or
|
||||
* copied from cache.
|
||||
*
|
||||
* During the lifetime of the reader, the reference for an index should
|
||||
* be set only once.
|
||||
*
|
||||
* @param packName
|
||||
* Name of the pack
|
||||
* @param src
|
||||
* Source of the pack (e.g. GC, COMPACT, ...)
|
||||
* @param ext
|
||||
* Extension in the pack (e.g. IDX, RIDX, ...)
|
||||
* @param size
|
||||
* Size of the data loaded (usually as bytes in disk)
|
||||
* @param loadedIdx
|
||||
* reference to the loaded index
|
||||
*/
|
||||
void onIndexLoad(String packName, PackSource src, PackExt ext, long size,
|
||||
Object loadedIdx);
|
||||
|
||||
/**
|
||||
* This is called when a dfs block is loaded into the reader.
|
||||
*
|
||||
* The reader keeps only one block at a time in memory, so during a
|
||||
* request the same block could be loaded multiple times.
|
||||
*
|
||||
* @param packName
|
||||
* Name of the pack this block belongs to
|
||||
* @param src
|
||||
* Source of the pack (e.g. GC, COMPACT, ...)
|
||||
* @param ext
|
||||
* Extension in the pack (e.g. PACK or REFTABLE)
|
||||
* @param position
|
||||
* Offset in the file requested by caller
|
||||
* @param dfsBlockData
|
||||
* Metadata of the block
|
||||
*/
|
||||
void onBlockLoad(String packName, PackSource src, PackExt ext,
|
||||
long position, DfsBlockData dfsBlockData);
|
||||
}
|
||||
|
||||
void emitIndexLoad(DfsPackDescription packDescription, PackExt ext,
|
||||
Object loadedIdx) {
|
||||
packLoadListeners.forEach(
|
||||
listener -> listener.onIndexLoad(packDescription.getFileName(ext),
|
||||
packDescription.getPackSource(), ext,
|
||||
packDescription.getFileSize(ext), loadedIdx));
|
||||
}
|
||||
|
||||
void emitBlockLoad(BlockBasedFile file, long position, DfsBlock dfsBlock) {
|
||||
packLoadListeners
|
||||
.forEach(listener -> listener.onBlockLoad(file.getFileName(),
|
||||
file.desc.getPackSource(), file.ext, position,
|
||||
DfsBlockData.of(dfsBlock)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add listener to record loads by this reader
|
||||
*
|
||||
* @param listener a listener
|
||||
*/
|
||||
protected void addPackLoadListener(PackLoadListener listener) {
|
||||
packLoadListeners.add(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* <p>
|
||||
|
|
|
@ -259,7 +259,7 @@ public Pack openPack(File pack) throws IOException {
|
|||
}
|
||||
|
||||
PackFile bitmapIdx = pf.create(BITMAP_INDEX);
|
||||
Pack res = new Pack(pack, bitmapIdx.exists() ? bitmapIdx : null);
|
||||
Pack res = new Pack(config, pack, bitmapIdx.exists() ? bitmapIdx : null);
|
||||
packed.insert(res);
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
import static org.eclipse.jgit.internal.storage.pack.PackExt.INDEX;
|
||||
import static org.eclipse.jgit.internal.storage.pack.PackExt.KEEP;
|
||||
import static org.eclipse.jgit.internal.storage.pack.PackExt.REVERSE_INDEX;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_CORE_SECTION;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_INDEX_GIT_USE_STRONGREFS;
|
||||
|
||||
import java.io.EOFException;
|
||||
import java.io.File;
|
||||
|
@ -32,6 +34,7 @@
|
|||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.zip.CRC32;
|
||||
|
@ -53,8 +56,10 @@
|
|||
import org.eclipse.jgit.internal.storage.pack.BinaryDelta;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackExt;
|
||||
import org.eclipse.jgit.internal.storage.pack.PackOutputStream;
|
||||
import org.eclipse.jgit.internal.util.Optionally;
|
||||
import org.eclipse.jgit.lib.AbbreviatedObjectId;
|
||||
import org.eclipse.jgit.lib.AnyObjectId;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.lib.ObjectLoader;
|
||||
|
@ -79,6 +84,8 @@ public class Pack implements Iterable<PackIndex.MutableEntry> {
|
|||
public static final Comparator<Pack> SORT = (a, b) -> b.packLastModified
|
||||
.compareTo(a.packLastModified);
|
||||
|
||||
private boolean useStrongRefs;
|
||||
|
||||
private final PackFile packFile;
|
||||
|
||||
private PackFile keepFile;
|
||||
|
@ -111,11 +118,11 @@ public class Pack implements Iterable<PackIndex.MutableEntry> {
|
|||
|
||||
private byte[] packChecksum;
|
||||
|
||||
private volatile PackIndex loadedIdx;
|
||||
private volatile Optionally<PackIndex> loadedIdx = Optionally.empty();
|
||||
|
||||
private PackReverseIndex reverseIdx;
|
||||
private Optionally<PackReverseIndex> reverseIdx = Optionally.empty();
|
||||
|
||||
private PackBitmapIndex bitmapIdx;
|
||||
private Optionally<PackBitmapIndex> bitmapIdx = Optionally.empty();
|
||||
|
||||
/**
|
||||
* Objects we have tried to read, and discovered to be corrupt.
|
||||
|
@ -129,12 +136,16 @@ public class Pack implements Iterable<PackIndex.MutableEntry> {
|
|||
/**
|
||||
* Construct a reader for an existing, pre-indexed packfile.
|
||||
*
|
||||
* @param cfg
|
||||
* configuration this directory consults for write settings.
|
||||
* @param packFile
|
||||
* path of the <code>.pack</code> file holding the data.
|
||||
* @param bitmapIdxFile
|
||||
* existing bitmap index file with the same base as the pack
|
||||
*/
|
||||
public Pack(File packFile, @Nullable PackFile bitmapIdxFile) {
|
||||
public Pack(Config cfg, File packFile, @Nullable PackFile bitmapIdxFile) {
|
||||
useStrongRefs = cfg.getBoolean(CONFIG_CORE_SECTION,
|
||||
CONFIG_KEY_PACKED_INDEX_GIT_USE_STRONGREFS, WindowCache.getInstance().isPackedIndexGitUseStrongRefs());
|
||||
this.packFile = new PackFile(packFile);
|
||||
this.fileSnapshot = PackFileSnapshot.save(packFile);
|
||||
this.packLastModified = fileSnapshot.lastModifiedInstant();
|
||||
|
@ -148,57 +159,58 @@ public Pack(File packFile, @Nullable PackFile bitmapIdxFile) {
|
|||
}
|
||||
|
||||
private PackIndex idx() throws IOException {
|
||||
PackIndex idx = loadedIdx;
|
||||
if (idx == null) {
|
||||
synchronized (this) {
|
||||
idx = loadedIdx;
|
||||
if (idx == null) {
|
||||
if (invalid) {
|
||||
throw new PackInvalidException(packFile,
|
||||
invalidatingCause);
|
||||
}
|
||||
try {
|
||||
long start = System.currentTimeMillis();
|
||||
PackFile idxFile = packFile.create(INDEX);
|
||||
idx = PackIndex.open(idxFile);
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug(String.format(
|
||||
"Opening pack index %s, size %.3f MB took %d ms", //$NON-NLS-1$
|
||||
idxFile.getAbsolutePath(),
|
||||
Float.valueOf(idxFile.length()
|
||||
/ (1024f * 1024)),
|
||||
Long.valueOf(System.currentTimeMillis()
|
||||
- start)));
|
||||
}
|
||||
|
||||
if (packChecksum == null) {
|
||||
packChecksum = idx.packChecksum;
|
||||
fileSnapshot.setChecksum(
|
||||
ObjectId.fromRaw(packChecksum));
|
||||
} else if (!Arrays.equals(packChecksum,
|
||||
idx.packChecksum)) {
|
||||
throw new PackMismatchException(MessageFormat
|
||||
.format(JGitText.get().packChecksumMismatch,
|
||||
packFile.getPath(),
|
||||
PackExt.PACK.getExtension(),
|
||||
Hex.toHexString(packChecksum),
|
||||
PackExt.INDEX.getExtension(),
|
||||
Hex.toHexString(idx.packChecksum)));
|
||||
}
|
||||
loadedIdx = idx;
|
||||
} catch (InterruptedIOException e) {
|
||||
// don't invalidate the pack, we are interrupted from
|
||||
// another thread
|
||||
throw e;
|
||||
} catch (IOException e) {
|
||||
invalid = true;
|
||||
invalidatingCause = e;
|
||||
throw e;
|
||||
}
|
||||
Optional<PackIndex> optional = loadedIdx.getOptional();
|
||||
if (optional.isPresent()) {
|
||||
return optional.get();
|
||||
}
|
||||
synchronized (this) {
|
||||
optional = loadedIdx.getOptional();
|
||||
if (optional.isPresent()) {
|
||||
return optional.get();
|
||||
}
|
||||
if (invalid) {
|
||||
throw new PackInvalidException(packFile, invalidatingCause);
|
||||
}
|
||||
try {
|
||||
long start = System.currentTimeMillis();
|
||||
PackFile idxFile = packFile.create(INDEX);
|
||||
PackIndex idx = PackIndex.open(idxFile);
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug(String.format(
|
||||
"Opening pack index %s, size %.3f MB took %d ms", //$NON-NLS-1$
|
||||
idxFile.getAbsolutePath(),
|
||||
Float.valueOf(idxFile.length()
|
||||
/ (1024f * 1024)),
|
||||
Long.valueOf(System.currentTimeMillis()
|
||||
- start)));
|
||||
}
|
||||
|
||||
if (packChecksum == null) {
|
||||
packChecksum = idx.packChecksum;
|
||||
fileSnapshot.setChecksum(
|
||||
ObjectId.fromRaw(packChecksum));
|
||||
} else if (!Arrays.equals(packChecksum,
|
||||
idx.packChecksum)) {
|
||||
throw new PackMismatchException(MessageFormat
|
||||
.format(JGitText.get().packChecksumMismatch,
|
||||
packFile.getPath(),
|
||||
PackExt.PACK.getExtension(),
|
||||
Hex.toHexString(packChecksum),
|
||||
PackExt.INDEX.getExtension(),
|
||||
Hex.toHexString(idx.packChecksum)));
|
||||
}
|
||||
loadedIdx = optionally(idx);
|
||||
return idx;
|
||||
} catch (InterruptedIOException e) {
|
||||
// don't invalidate the pack, we are interrupted from
|
||||
// another thread
|
||||
throw e;
|
||||
} catch (IOException e) {
|
||||
invalid = true;
|
||||
invalidatingCause = e;
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
return idx;
|
||||
}
|
||||
/**
|
||||
* Get the File object which locates this pack on disk.
|
||||
|
@ -288,8 +300,9 @@ void resolve(Set<ObjectId> matches, AbbreviatedObjectId id, int matchLimit)
|
|||
public void close() {
|
||||
WindowCache.purge(this);
|
||||
synchronized (this) {
|
||||
loadedIdx = null;
|
||||
reverseIdx = null;
|
||||
loadedIdx.clear();
|
||||
reverseIdx.clear();
|
||||
bitmapIdx.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1127,40 +1140,41 @@ synchronized PackBitmapIndex getBitmapIndex() throws IOException {
|
|||
if (invalid || bitmapIdxFile == null) {
|
||||
return null;
|
||||
}
|
||||
if (bitmapIdx == null) {
|
||||
final PackBitmapIndex idx;
|
||||
try {
|
||||
idx = PackBitmapIndex.open(bitmapIdxFile, idx(),
|
||||
getReverseIdx());
|
||||
} catch (FileNotFoundException e) {
|
||||
// Once upon a time this bitmap file existed. Now it
|
||||
// has been removed. Most likely an external gc has
|
||||
// removed this packfile and the bitmap
|
||||
bitmapIdxFile = null;
|
||||
return null;
|
||||
}
|
||||
|
||||
Optional<PackBitmapIndex> optional = bitmapIdx.getOptional();
|
||||
if (optional.isPresent()) {
|
||||
return optional.get();
|
||||
}
|
||||
try {
|
||||
PackBitmapIndex idx = PackBitmapIndex.open(bitmapIdxFile, idx(),
|
||||
getReverseIdx());
|
||||
// At this point, idx() will have set packChecksum.
|
||||
if (Arrays.equals(packChecksum, idx.packChecksum)) {
|
||||
bitmapIdx = idx;
|
||||
} else {
|
||||
bitmapIdxFile = null;
|
||||
bitmapIdx = optionally(idx);
|
||||
return idx;
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
// Once upon a time this bitmap file existed. Now it
|
||||
// has been removed. Most likely an external gc has
|
||||
// removed this packfile and the bitmap
|
||||
}
|
||||
return bitmapIdx;
|
||||
bitmapIdxFile = null;
|
||||
return null;
|
||||
}
|
||||
|
||||
private synchronized PackReverseIndex getReverseIdx() throws IOException {
|
||||
if (invalid) {
|
||||
throw new PackInvalidException(packFile, invalidatingCause);
|
||||
}
|
||||
if (reverseIdx == null) {
|
||||
PackFile reverseIndexFile = packFile.create(REVERSE_INDEX);
|
||||
reverseIdx = PackReverseIndexFactory.openOrCompute(reverseIndexFile,
|
||||
getObjectCount(), () -> getIndex());
|
||||
reverseIdx.verifyPackChecksum(getPackFile().getPath());
|
||||
Optional<PackReverseIndex> optional = reverseIdx.getOptional();
|
||||
if (optional.isPresent()) {
|
||||
return optional.get();
|
||||
}
|
||||
return reverseIdx;
|
||||
PackFile reverseIndexFile = packFile.create(REVERSE_INDEX);
|
||||
PackReverseIndex revIdx = PackReverseIndexFactory.openOrCompute(reverseIndexFile,
|
||||
getObjectCount(), () -> getIndex());
|
||||
revIdx.verifyPackChecksum(getPackFile().getPath());
|
||||
reverseIdx = optionally(revIdx);
|
||||
return revIdx;
|
||||
}
|
||||
|
||||
private boolean isCorrupt(long offset) {
|
||||
|
@ -1195,4 +1209,8 @@ public String toString() {
|
|||
+ packFile.length() + ", packChecksum="
|
||||
+ ObjectId.fromRaw(packChecksum).name() + "]";
|
||||
}
|
||||
|
||||
private <T> Optionally<T> optionally(T element) {
|
||||
return useStrongRefs ? new Optionally.Hard<>(element) : new Optionally.Soft<>(element);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,6 +65,8 @@ class PackDirectory {
|
|||
private static final PackList NO_PACKS = new PackList(FileSnapshot.DIRTY,
|
||||
new Pack[0]);
|
||||
|
||||
private final Config config;
|
||||
|
||||
private final File directory;
|
||||
|
||||
private final AtomicReference<PackList> packList;
|
||||
|
@ -80,6 +82,7 @@ class PackDirectory {
|
|||
* the location of the {@code pack} directory.
|
||||
*/
|
||||
PackDirectory(Config config, File directory) {
|
||||
this.config = config;
|
||||
this.directory = directory;
|
||||
packList = new AtomicReference<>(NO_PACKS);
|
||||
|
||||
|
@ -457,7 +460,7 @@ private PackList scanPacksImpl(PackList old) {
|
|||
continue;
|
||||
}
|
||||
|
||||
list.add(new Pack(packFile, packFilesByExt.get(BITMAP_INDEX)));
|
||||
list.add(new Pack(config, packFile, packFilesByExt.get(BITMAP_INDEX)));
|
||||
foundNew = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -435,7 +435,9 @@ static final void purge(Pack pack) {
|
|||
|
||||
private final AtomicBoolean publishMBean = new AtomicBoolean();
|
||||
|
||||
private boolean useStrongRefs;
|
||||
private final boolean useStrongRefs;
|
||||
|
||||
private final boolean useStrongIndexRefs;
|
||||
|
||||
private WindowCache(WindowCacheConfig cfg) {
|
||||
tableSize = tableSize(cfg);
|
||||
|
@ -467,6 +469,7 @@ else if (eb < 4)
|
|||
windowSizeShift = bits(cfg.getPackedGitWindowSize());
|
||||
windowSize = 1 << windowSizeShift;
|
||||
useStrongRefs = cfg.isPackedGitUseStrongRefs();
|
||||
useStrongIndexRefs = cfg.isPackedIndexGitUseStrongRefs();
|
||||
queue = useStrongRefs ? new StrongCleanupQueue(this)
|
||||
: new SoftCleanupQueue(this);
|
||||
|
||||
|
@ -751,6 +754,10 @@ private static Entry clean(Entry top) {
|
|||
return n == top.next ? top : new Entry(n, top.ref);
|
||||
}
|
||||
|
||||
boolean isPackedIndexGitUseStrongRefs() {
|
||||
return useStrongIndexRefs;
|
||||
}
|
||||
|
||||
private static class Entry {
|
||||
/** Next entry in the hash table's chain list. */
|
||||
final Entry next;
|
||||
|
|
|
@ -0,0 +1,126 @@
|
|||
/*
|
||||
* Copyright (c) 2023 Qualcomm Innovation Center, Inc.
|
||||
* 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 v. 1.0 which is available at
|
||||
* https://www.eclipse.org/org/documents/edl-v10.php.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
package org.eclipse.jgit.internal.util;
|
||||
|
||||
import java.lang.ref.SoftReference;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Interface representing a reference to a potentially mutable optional object.
|
||||
*
|
||||
* @param <T>
|
||||
* type of the mutable optional object
|
||||
*
|
||||
* @since 6.7
|
||||
*/
|
||||
public interface Optionally<T> {
|
||||
/**
|
||||
* A permanently empty Optionally
|
||||
*
|
||||
* @param <T>
|
||||
* type of the mutable optional object
|
||||
*
|
||||
*/
|
||||
public class Empty<T> implements Optionally<T> {
|
||||
@Override
|
||||
public void clear() {
|
||||
// empty
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<T> getOptional() {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A permanent(hard) reference to an object
|
||||
*
|
||||
* @param <T>
|
||||
* type of the mutable optional object
|
||||
*
|
||||
*/
|
||||
public class Hard<T> implements Optionally<T> {
|
||||
/**
|
||||
* The mutable optional object
|
||||
*/
|
||||
protected T element;
|
||||
|
||||
/**
|
||||
* @param element
|
||||
* the mutable optional object
|
||||
*/
|
||||
public Hard(T element) {
|
||||
this.element = element;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
element = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<T> getOptional() {
|
||||
return Optional.ofNullable(element);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A SoftReference Optionally
|
||||
*
|
||||
* @param <T>
|
||||
* type of the mutable optional object
|
||||
*
|
||||
*/
|
||||
public class Soft<T> extends SoftReference<T> implements Optionally<T> {
|
||||
/**
|
||||
* @param t
|
||||
* the mutable optional object
|
||||
*/
|
||||
public Soft(T t) {
|
||||
super(t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<T> getOptional() {
|
||||
return Optional.ofNullable(get());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The empty Optionally
|
||||
*/
|
||||
public static final Optionally<?> EMPTY = new Empty<>();
|
||||
|
||||
/**
|
||||
* @param <T>
|
||||
* type of the empty Optionally
|
||||
* @return the empty Optionally
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> Optionally<T> empty() {
|
||||
return (Optionally<T>) EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the object
|
||||
*
|
||||
*/
|
||||
void clear();
|
||||
|
||||
/**
|
||||
* Get an Optional representing the current state of the object
|
||||
*
|
||||
* @return the mutable optional object
|
||||
*/
|
||||
Optional<T> getOptional();
|
||||
}
|
|
@ -739,7 +739,7 @@ protected void fireConfigChangedEvent() {
|
|||
listeners.dispatch(new ConfigChangedEvent());
|
||||
}
|
||||
|
||||
String getRawString(final String section, final String subsection,
|
||||
private String getRawString(final String section, final String subsection,
|
||||
final String name) {
|
||||
String[] lst = getRawStringList(section, subsection, name);
|
||||
if (lst != null) {
|
||||
|
|
|
@ -364,6 +364,12 @@ public final class ConfigConstants {
|
|||
*/
|
||||
public static final String CONFIG_KEY_PACKED_GIT_USE_STRONGREFS = "packedgitusestrongrefs";
|
||||
|
||||
/**
|
||||
* The "packedIndexGitUseStrongRefs" key
|
||||
* @since 6.7
|
||||
*/
|
||||
public static final String CONFIG_KEY_PACKED_INDEX_GIT_USE_STRONGREFS = "packedindexgitusestrongrefs";
|
||||
|
||||
/** The "remote" key */
|
||||
public static final String CONFIG_KEY_REMOTE = "remote";
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ public class DefaultTypedConfigGetter implements TypedConfigGetter {
|
|||
@Override
|
||||
public boolean getBoolean(Config config, String section, String subsection,
|
||||
String name, boolean defaultValue) {
|
||||
String n = config.getRawString(section, subsection, name);
|
||||
String n = config.getString(section, subsection, name);
|
||||
if (n == null) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||
import org.eclipse.jgit.errors.LockFailedException;
|
||||
|
@ -52,6 +54,8 @@ public class FileBasedConfig extends StoredConfig {
|
|||
|
||||
private volatile ObjectId hash;
|
||||
|
||||
private AtomicBoolean exists = new AtomicBoolean();
|
||||
|
||||
/**
|
||||
* Create a configuration with no default fallback.
|
||||
*
|
||||
|
@ -99,6 +103,21 @@ public final File getFile() {
|
|||
return configFile;
|
||||
}
|
||||
|
||||
boolean exists() {
|
||||
return exists.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStringList(String section, String subsection, String name,
|
||||
List<String> values) {
|
||||
super.setStringList(section, subsection, name, values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsetSection(String section, String subsection) {
|
||||
super.unsetSection(section, subsection);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* <p>
|
||||
|
@ -144,6 +163,7 @@ public void load() throws IOException, ConfigInvalidException {
|
|||
clear();
|
||||
snapshot = lastSnapshot[0];
|
||||
}
|
||||
exists.set(wasRead != null);
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
|
|
|
@ -0,0 +1,110 @@
|
|||
/*
|
||||
* Copyright (C) 2023, Thomas Wolf <twolf@apache.org> and others
|
||||
*
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the Eclipse Distribution License v. 1.0 which is available at
|
||||
* https://www.eclipse.org/org/documents/edl-v10.php.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
package org.eclipse.jgit.storage.file;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jgit.annotations.NonNull;
|
||||
import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
import org.eclipse.jgit.util.FS;
|
||||
|
||||
/**
|
||||
* User (global) git config based on two possible locations,
|
||||
* {@code ~/.gitconfig} and {@code $XDG_CONFIG_HOME/git/config}.
|
||||
* <p>
|
||||
* For reading, both locations are considered, first the XDG file, then the file
|
||||
* in the home directory. All updates occur in the last file read that exists,
|
||||
* or in the home directory file if neither exists. In other words: if only the
|
||||
* XDG file exists, it is updated, otherwise the home directory file is updated.
|
||||
* </p>
|
||||
*
|
||||
* @since 6.7
|
||||
*/
|
||||
public class UserConfigFile extends FileBasedConfig {
|
||||
|
||||
private final FileBasedConfig parent;
|
||||
|
||||
/**
|
||||
* Creates a new {@link UserConfigFile}.
|
||||
*
|
||||
* @param parent
|
||||
* parent {@link Config}; may be {@code null}
|
||||
* @param config
|
||||
* {@link File} for {@code ~/.gitconfig}
|
||||
* @param xdgConfig
|
||||
* {@link File} for {@code $XDG_CONFIG_HOME/.gitconfig}
|
||||
* @param fileSystem
|
||||
* {@link FS} to use for the two files; normally
|
||||
* {@link FS#DETECTED}
|
||||
*/
|
||||
public UserConfigFile(Config parent, @NonNull File config,
|
||||
@NonNull File xdgConfig, @NonNull FS fileSystem) {
|
||||
super(new FileBasedConfig(parent, xdgConfig, fileSystem), config,
|
||||
fileSystem);
|
||||
this.parent = (FileBasedConfig) getBaseConfig();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStringList(String section, String subsection, String name,
|
||||
List<String> values) {
|
||||
if (exists() || !parent.exists()) {
|
||||
super.setStringList(section, subsection, name, values);
|
||||
} else {
|
||||
parent.setStringList(section, subsection, name, values);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unset(String section, String subsection, String name) {
|
||||
if (exists() || !parent.exists()) {
|
||||
super.unset(section, subsection, name);
|
||||
} else {
|
||||
parent.unset(section, subsection, name);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsetSection(String section, String subsection) {
|
||||
if (exists() || !parent.exists()) {
|
||||
super.unsetSection(section, subsection);
|
||||
} else {
|
||||
parent.unsetSection(section, subsection);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOutdated() {
|
||||
return super.isOutdated() || parent.isOutdated();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() throws IOException, ConfigInvalidException {
|
||||
if (super.isOutdated()) {
|
||||
super.load();
|
||||
}
|
||||
if (parent.isOutdated()) {
|
||||
parent.load();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save() throws IOException {
|
||||
if (exists() || !parent.exists()) {
|
||||
if (exists() || !toText().strip().isEmpty()) {
|
||||
super.save();
|
||||
}
|
||||
} else {
|
||||
parent.save();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -18,6 +18,7 @@
|
|||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_GIT_WINDOWSIZE;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_STREAM_FILE_TRESHOLD;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_GIT_USE_STRONGREFS;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_INDEX_GIT_USE_STRONGREFS;
|
||||
|
||||
import org.eclipse.jgit.internal.storage.file.WindowCache;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
|
@ -39,6 +40,8 @@ public class WindowCacheConfig {
|
|||
|
||||
private boolean useStrongRefs;
|
||||
|
||||
private boolean useStrongIndexRefs;
|
||||
|
||||
private int packedGitWindowSize;
|
||||
|
||||
private boolean packedGitMMAP;
|
||||
|
@ -56,6 +59,7 @@ public WindowCacheConfig() {
|
|||
packedGitOpenFiles = 128;
|
||||
packedGitLimit = 10 * MB;
|
||||
useStrongRefs = false;
|
||||
useStrongIndexRefs = true;
|
||||
packedGitWindowSize = 8 * KB;
|
||||
packedGitMMAP = false;
|
||||
deltaBaseCacheLimit = 10 * MB;
|
||||
|
@ -132,6 +136,31 @@ public void setPackedGitUseStrongRefs(boolean useStrongRefs) {
|
|||
this.useStrongRefs = useStrongRefs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get whether the Pack indices cache should use strong references or
|
||||
* SoftReferences
|
||||
*
|
||||
* @return {@code true} if the cached Pack indices should use strong references,
|
||||
* otherwise it will use {@link java.lang.ref.SoftReference}s
|
||||
* @since 6.7
|
||||
*/
|
||||
public boolean isPackedIndexGitUseStrongRefs() {
|
||||
return useStrongIndexRefs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set if the Pack indices cache should use strong refs or soft refs
|
||||
*
|
||||
* @param useStrongRefs
|
||||
* if @{code true} the Pack strongly references cached indices
|
||||
* otherwise it uses {@link java.lang.ref.SoftReference}s which
|
||||
* can be evicted by the Java gc if heap is almost full
|
||||
* @since 6.7
|
||||
*/
|
||||
public void setPackedIndexGitUseStrongRefs(boolean useStrongRefs) {
|
||||
this.useStrongIndexRefs = useStrongRefs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get size in bytes of a single window mapped or read in from the pack
|
||||
* file.
|
||||
|
@ -270,6 +299,8 @@ public WindowCacheConfig fromConfig(Config rc) {
|
|||
setPackedGitUseStrongRefs(rc.getBoolean(CONFIG_CORE_SECTION,
|
||||
CONFIG_KEY_PACKED_GIT_USE_STRONGREFS,
|
||||
isPackedGitUseStrongRefs()));
|
||||
setPackedIndexGitUseStrongRefs(rc.getBoolean(CONFIG_CORE_SECTION,
|
||||
CONFIG_KEY_PACKED_INDEX_GIT_USE_STRONGREFS, isPackedIndexGitUseStrongRefs()));
|
||||
setPackedGitOpenFiles(rc.getInt(CONFIG_CORE_SECTION, null,
|
||||
CONFIG_KEY_PACKED_GIT_OPENFILES, getPackedGitOpenFiles()));
|
||||
setPackedGitLimit(rc.getLong(CONFIG_CORE_SECTION, null,
|
||||
|
|
|
@ -66,19 +66,7 @@ public static final byte[] readFully(File path)
|
|||
public static final byte[] readSome(File path, int limit)
|
||||
throws FileNotFoundException, IOException {
|
||||
try (SilentFileInputStream in = new SilentFileInputStream(path)) {
|
||||
byte[] buf = new byte[limit];
|
||||
int cnt = 0;
|
||||
for (;;) {
|
||||
int n = in.read(buf, cnt, buf.length - cnt);
|
||||
if (n <= 0)
|
||||
break;
|
||||
cnt += n;
|
||||
}
|
||||
if (cnt == buf.length)
|
||||
return buf;
|
||||
byte[] res = new byte[cnt];
|
||||
System.arraycopy(buf, 0, res, 0, cnt);
|
||||
return res;
|
||||
return in.readNBytes(limit);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,37 +87,10 @@ public static final byte[] readSome(File path, int limit)
|
|||
public static final byte[] readFully(File path, int max)
|
||||
throws FileNotFoundException, IOException {
|
||||
try (SilentFileInputStream in = new SilentFileInputStream(path)) {
|
||||
long sz = Math.max(path.length(), 1);
|
||||
if (sz > max)
|
||||
byte[] buf = in.readNBytes(max);
|
||||
if (in.read() != -1) {
|
||||
throw new IOException(MessageFormat.format(
|
||||
JGitText.get().fileIsTooLarge, path));
|
||||
|
||||
byte[] buf = new byte[(int) sz];
|
||||
int valid = 0;
|
||||
for (;;) {
|
||||
if (buf.length == valid) {
|
||||
if (buf.length == max) {
|
||||
int next = in.read();
|
||||
if (next < 0)
|
||||
break;
|
||||
|
||||
throw new IOException(MessageFormat.format(
|
||||
JGitText.get().fileIsTooLarge, path));
|
||||
}
|
||||
|
||||
byte[] nb = new byte[Math.min(buf.length * 2, max)];
|
||||
System.arraycopy(buf, 0, nb, 0, valid);
|
||||
buf = nb;
|
||||
}
|
||||
int n = in.read(buf, valid, buf.length - valid);
|
||||
if (n < 0)
|
||||
break;
|
||||
valid += n;
|
||||
}
|
||||
if (valid < buf.length) {
|
||||
byte[] nb = new byte[valid];
|
||||
System.arraycopy(buf, 0, nb, 0, valid);
|
||||
buf = nb;
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
@ -157,26 +118,7 @@ public static final byte[] readFully(File path, int max)
|
|||
*/
|
||||
public static ByteBuffer readWholeStream(InputStream in, int sizeHint)
|
||||
throws IOException {
|
||||
byte[] out = new byte[sizeHint];
|
||||
int pos = 0;
|
||||
while (pos < out.length) {
|
||||
int read = in.read(out, pos, out.length - pos);
|
||||
if (read < 0)
|
||||
return ByteBuffer.wrap(out, 0, pos);
|
||||
pos += read;
|
||||
}
|
||||
|
||||
int last = in.read();
|
||||
if (last < 0)
|
||||
return ByteBuffer.wrap(out, 0, pos);
|
||||
|
||||
try (TemporaryBuffer.Heap tmp = new TemporaryBuffer.Heap(
|
||||
Integer.MAX_VALUE)) {
|
||||
tmp.write(out);
|
||||
tmp.write(last);
|
||||
tmp.copy(in);
|
||||
return ByteBuffer.wrap(tmp.toByteArray());
|
||||
}
|
||||
return ByteBuffer.wrap(in.readAllBytes());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -197,13 +139,9 @@ public static ByteBuffer readWholeStream(InputStream in, int sizeHint)
|
|||
*/
|
||||
public static void readFully(final InputStream fd, final byte[] dst,
|
||||
int off, int len) throws IOException {
|
||||
while (len > 0) {
|
||||
final int r = fd.read(dst, off, len);
|
||||
if (r <= 0)
|
||||
throw new EOFException(JGitText.get().shortReadOfBlock);
|
||||
off += r;
|
||||
len -= r;
|
||||
}
|
||||
int read = fd.readNBytes(dst, off, len);
|
||||
if (read != len)
|
||||
throw new EOFException(JGitText.get().shortReadOfBlock);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -271,14 +209,7 @@ public static int read(ReadableByteChannel channel, byte[] dst, int off,
|
|||
*/
|
||||
public static int readFully(InputStream fd, byte[] dst, int off)
|
||||
throws IOException {
|
||||
int r;
|
||||
int len = 0;
|
||||
while (off < dst.length
|
||||
&& (r = fd.read(dst, off, dst.length - off)) >= 0) {
|
||||
off += r;
|
||||
len += r;
|
||||
}
|
||||
return len;
|
||||
return fd.readNBytes(dst, off, dst.length - off);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -300,6 +231,7 @@ public static int readFully(InputStream fd, byte[] dst, int off)
|
|||
*/
|
||||
public static void skipFully(InputStream fd, long toSkip)
|
||||
throws IOException {
|
||||
// same as fd.skipNBytes(toSkip) of JDK 12;
|
||||
while (toSkip > 0) {
|
||||
final long r = fd.skip(toSkip);
|
||||
if (r <= 0)
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
import org.eclipse.jgit.lib.ObjectChecker;
|
||||
import org.eclipse.jgit.lib.StoredConfig;
|
||||
import org.eclipse.jgit.storage.file.FileBasedConfig;
|
||||
import org.eclipse.jgit.storage.file.UserConfigFile;
|
||||
import org.eclipse.jgit.util.time.MonotonicClock;
|
||||
import org.eclipse.jgit.util.time.MonotonicSystemClock;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -124,8 +125,15 @@ public boolean isOutdated() {
|
|||
|
||||
@Override
|
||||
public FileBasedConfig openUserConfig(Config parent, FS fs) {
|
||||
return new FileBasedConfig(parent, new File(fs.userHome(), ".gitconfig"), //$NON-NLS-1$
|
||||
fs);
|
||||
File homeFile = new File(fs.userHome(), ".gitconfig"); //$NON-NLS-1$
|
||||
Path xdgPath = getXdgConfigDirectory(fs);
|
||||
if (xdgPath != null) {
|
||||
Path configPath = xdgPath.resolve("git") //$NON-NLS-1$
|
||||
.resolve(Constants.CONFIG);
|
||||
return new UserConfigFile(parent, homeFile, configPath.toFile(),
|
||||
fs);
|
||||
}
|
||||
return new FileBasedConfig(parent, homeFile, fs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
6
pom.xml
6
pom.xml
|
@ -169,7 +169,7 @@
|
|||
<slf4j-version>1.7.36</slf4j-version>
|
||||
<maven-javadoc-plugin-version>3.5.0</maven-javadoc-plugin-version>
|
||||
<gson-version>2.10.1</gson-version>
|
||||
<bouncycastle-version>1.75</bouncycastle-version>
|
||||
<bouncycastle-version>1.76</bouncycastle-version>
|
||||
<spotbugs-maven-plugin-version>4.7.3.4</spotbugs-maven-plugin-version>
|
||||
<maven-project-info-reports-plugin-version>3.4.3</maven-project-info-reports-plugin-version>
|
||||
<maven-jxr-plugin-version>3.3.0</maven-jxr-plugin-version>
|
||||
|
@ -203,10 +203,6 @@
|
|||
<id>repo.eclipse.org.cbi-releases</id>
|
||||
<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>repo.eclipse.org.cbi-snapshots</id>
|
||||
<url>https://repo.eclipse.org/content/repositories/cbi-snapshots/</url>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>repo.eclipse.org.dash-releases</id>
|
||||
<url>https://repo.eclipse.org/content/repositories/dash-licenses-releases/</url>
|
||||
|
|
Loading…
Reference in New Issue