Merge branch 'stable-6.4' into stable-6.5

Remove jetty source bundles from p2 repo since they aren't available for
jetty 10.0.13.

* stable-6.4:
  MergeToolTest: update expected error from the tool
  Add dash license check for 3rd party dependencies
  Prepare 5.13.5-SNAPSHOT builds
  JGit v5.13.4.202507202350-r
  AmazonS3: Do not accept DOCTYPE and entities
  ManifestParser: Do not accept DOCTYPE and entities
  AdvertisedRequestValidator: fix WantNotValidException caused by race
  Prepare 5.13.4-SNAPSHOT builds
  Fix packaging build

Change-Id: I4e9262d883d31bbc9392b2140f9071a3093d56af
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
index 7fa2b83..fdea960 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
@@ -84,45 +84,24 @@
    <bundle id="org.eclipse.jetty.http">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.http.source">
-      <category name="JGit-dependency-bundles"/>
-   </bundle>
    <bundle id="org.eclipse.jetty.io">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.io.source">
-      <category name="JGit-dependency-bundles"/>
-   </bundle>
    <bundle id="org.eclipse.jetty.security">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.security.source">
-      <category name="JGit-dependency-bundles"/>
-   </bundle>
    <bundle id="org.eclipse.jetty.server">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.server.source">
-      <category name="JGit-dependency-bundles"/>
-   </bundle>
    <bundle id="org.eclipse.jetty.servlet">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.servlet.source">
-      <category name="JGit-dependency-bundles"/>
-   </bundle>
    <bundle id="org.eclipse.jetty.util">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.util.source">
-      <category name="JGit-dependency-bundles"/>
-   </bundle>
    <bundle id="org.eclipse.jetty.util.ajax">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.util.ajax.source">
-      <category name="JGit-dependency-bundles"/>
-   </bundle>
    <bundle id="net.i2p.crypto.eddsa">
       <category name="JGit-dependency-bundles"/>
    </bundle>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.target
deleted file mode 100644
index b4ad428..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.target
+++ /dev/null
@@ -1,93 +0,0 @@
-<?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="1677748416">
-  <locations>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.http" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.io" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.security" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.server" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.util" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
-      <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="jakarta.servlet-api" version="4.0.0"/>
-      <unit id="jakarta.servlet-api.source" version="4.0.0"/>
-      <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
-      <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
-      <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="com.sun.jna" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
-      <unit id="javaewah" version="1.1.13.v20211029-0839"/>
-      <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
-      <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
-      <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.commons.codec" version="1.14.0.v20221112-0806"/>
-      <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
-      <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
-      <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
-      <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
-      <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
-      <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
-      <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
-      <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.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
-      <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
-      <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
-      <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
-      <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
-      <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.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
-      <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
-      <unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
-      <unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
-      <unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
-      <unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
-      <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
-      <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
-      <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
-    </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/2020-09/"/>
-    </location>
-  </locations>
-</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd
deleted file mode 100644
index cf00c96..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd
+++ /dev/null
@@ -1,8 +0,0 @@
-target "jgit-4.17" with source configurePhase
-
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
-
-location "https://download.eclipse.org/releases/2020-09/" {
-	org.eclipse.osgi lazy
-}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.target
deleted file mode 100644
index 9ad44d8..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.target
+++ /dev/null
@@ -1,93 +0,0 @@
-<?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="1677748416">
-  <locations>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.http" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.io" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.security" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.server" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.util" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
-      <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="jakarta.servlet-api" version="4.0.0"/>
-      <unit id="jakarta.servlet-api.source" version="4.0.0"/>
-      <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
-      <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
-      <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="com.sun.jna" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
-      <unit id="javaewah" version="1.1.13.v20211029-0839"/>
-      <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
-      <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
-      <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.commons.codec" version="1.14.0.v20221112-0806"/>
-      <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
-      <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
-      <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
-      <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
-      <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
-      <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
-      <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
-      <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.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
-      <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
-      <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
-      <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
-      <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
-      <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.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
-      <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
-      <unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
-      <unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
-      <unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
-      <unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
-      <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
-      <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
-      <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
-    </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/2020-12/"/>
-    </location>
-  </locations>
-</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd
deleted file mode 100644
index 325b6de..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd
+++ /dev/null
@@ -1,8 +0,0 @@
-target "jgit-4.18" with source configurePhase
-
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
-
-location "https://download.eclipse.org/releases/2020-12/" {
-	org.eclipse.osgi lazy
-}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
deleted file mode 100644
index e570bf9..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
+++ /dev/null
@@ -1,93 +0,0 @@
-<?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="1677748416">
-  <locations>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.http" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.io" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.security" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.server" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.util" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
-      <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="jakarta.servlet-api" version="4.0.0"/>
-      <unit id="jakarta.servlet-api.source" version="4.0.0"/>
-      <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
-      <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
-      <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="com.sun.jna" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
-      <unit id="javaewah" version="1.1.13.v20211029-0839"/>
-      <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
-      <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
-      <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.commons.codec" version="1.14.0.v20221112-0806"/>
-      <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
-      <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
-      <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
-      <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
-      <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
-      <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
-      <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
-      <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.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
-      <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
-      <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
-      <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
-      <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
-      <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.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
-      <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
-      <unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
-      <unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
-      <unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
-      <unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
-      <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
-      <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
-      <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
-    </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/2021-03/"/>
-    </location>
-  </locations>
-</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.tpd
deleted file mode 100644
index 08f3910..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.tpd
+++ /dev/null
@@ -1,8 +0,0 @@
-target "jgit-4.19-staging" with source configurePhase
-
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
-
-location "https://download.eclipse.org/releases/2021-03/" {
-	org.eclipse.osgi lazy
-}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target
deleted file mode 100644
index a3f7c2b..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target
+++ /dev/null
@@ -1,93 +0,0 @@
-<?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="1677748416">
-  <locations>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.http" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.io" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.security" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.server" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.util" version="10.0.13"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
-      <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="jakarta.servlet-api" version="4.0.0"/>
-      <unit id="jakarta.servlet-api.source" version="4.0.0"/>
-      <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
-      <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
-      <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="com.sun.jna" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
-      <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
-      <unit id="javaewah" version="1.1.13.v20211029-0839"/>
-      <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
-      <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
-      <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
-      <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.commons.codec" version="1.14.0.v20221112-0806"/>
-      <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
-      <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
-      <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
-      <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
-      <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
-      <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
-      <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
-      <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.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
-      <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
-      <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
-      <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
-      <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
-      <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
-      <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
-      <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
-      <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.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
-      <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
-      <unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
-      <unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
-      <unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
-      <unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
-      <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
-      <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
-      <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
-      <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
-    </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/2021-06/"/>
-    </location>
-  </locations>
-</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.tpd
deleted file mode 100644
index 07f8ab5..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.tpd
+++ /dev/null
@@ -1,8 +0,0 @@
-target "jgit-4.20" with source configurePhase
-
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
-
-location "https://download.eclipse.org/releases/2021-06/" {
-	org.eclipse.osgi lazy
-}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target
index 908087f..38e9839 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target
@@ -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="1677748416">
+<target name="jgit-4.21" sequenceNumber="1753133259">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.jetty.http" version="10.0.13"/>
@@ -87,7 +87,7 @@
     </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/2021-09/"/>
+      <repository location="https://download.eclipse.org/releases/2021-12/"/>
     </location>
   </locations>
 </target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.tpd
index c957b85..9e7f4ac 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.tpd
@@ -3,6 +3,6 @@
 include "projects/jetty-10.0.x.tpd"
 include "orbit/R20230302014618-2023-03.tpd"
 
-location "https://download.eclipse.org/releases/2021-09/" {
+location "https://download.eclipse.org/releases/2021-12/" {
 	org.eclipse.osgi lazy
 }
diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml
index 28ae7ce..93110d4 100644
--- a/org.eclipse.jgit.packaging/pom.xml
+++ b/org.eclipse.jgit.packaging/pom.xml
@@ -23,8 +23,8 @@
 
   <properties>
     <java.version>11</java.version>
-    <tycho-version>2.7.5</tycho-version>
-    <target-platform>jgit-4.17</target-platform>
+    <tycho-version>4.0.13</tycho-version>
+    <target-platform>jgit-4.21</target-platform>
   </properties>
 
   <pluginRepositories>
@@ -186,6 +186,19 @@
               </rules>
             </configuration>
           </execution>
+          <execution>
+            <id>enforce-java</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireJavaVersion>
+                  <version>17</version>
+                </requireJavaVersion>
+              </rules>
+            </configuration>
+          </execution>
         </executions>
       </plugin>
       <plugin>
diff --git a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/MergeToolTest.java b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/MergeToolTest.java
index 54c4f26..65c7e9a 100644
--- a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/MergeToolTest.java
+++ b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/MergeToolTest.java
@@ -91,7 +91,7 @@ public void testEmptyToolName() throws Exception {
 
 		createMergeConflict();
 
-		String araxisErrorLine = "compare: unrecognized option `-wait' @ error/compare.c/CompareImageCommand/1123.";
+		String araxisErrorLine = "compare-im6.q16: unrecognized option `-wait' @ error/compare.c/CompareImageCommand/1131.";
 		String[] expectedErrorOutput = { araxisErrorLine, araxisErrorLine, };
 		runAndCaptureUsingInitRaw(Arrays.asList(expectedErrorOutput),
 				MERGE_TOOL, "--no-prompt");
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/ManifestParserTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/ManifestParserTest.java
index 20958a8..c9a0b0b 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/ManifestParserTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/ManifestParserTest.java
@@ -11,12 +11,16 @@
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
+import java.io.File;
 import java.io.IOException;
 import java.net.URI;
+import java.nio.file.Files;
+import java.nio.file.StandardOpenOption;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -152,4 +156,33 @@ public void testNormalizeEmptyPath() {
 		testNormalize("", "");
 		testNormalize("a/b", "a/b");
 	}
+
+	@Test
+	public void testXXE() throws Exception {
+		File externalEntity = File.createTempFile("injected", "xml");
+		externalEntity.deleteOnExit();
+		Files.write(externalEntity.toPath(),
+				"<evil>injected xml</evil>"
+						.getBytes(UTF_8),
+				StandardOpenOption.WRITE);
+		String baseUrl = "https://git.google.com/";
+		StringBuilder xmlContent = new StringBuilder();
+		xmlContent.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
+				.append("<!DOCTYPE booo [ <!ENTITY foobar SYSTEM \"")
+				.append(externalEntity.getPath()).append("\"> ]>\n")
+				.append("<manifest>")
+				.append("<remote name=\"remote1\" fetch=\".\" />")
+				.append("<default revision=\"master\" remote=\"remote1\" />")
+				.append("&foobar;")
+				.append("<project path=\"foo\" name=\"foo\" groups=\"a,test\" />")
+				.append("</manifest>");
+
+		IOException e = assertThrows(IOException.class,
+				() -> new ManifestParser(null, null, "master", baseUrl, null,
+						null)
+						.read(new ByteArrayInputStream(
+								xmlContent.toString().getBytes(UTF_8))));
+		assertTrue(e.getCause().getMessage().contains("DOCTYPE"));
+	}
+
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/ManifestParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/ManifestParser.java
index aa69a05..726c7b4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/ManifestParser.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/ManifestParser.java
@@ -139,7 +139,17 @@ public void read(InputStream inputStream) throws IOException {
 		xmlInRead++;
 		final XMLReader xr;
 		try {
-			xr = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
+			SAXParserFactory spf = SAXParserFactory.newInstance();
+			spf.setFeature(
+					"http://xml.org/sax/features/external-general-entities", //$NON-NLS-1$
+					false);
+			spf.setFeature(
+					"http://xml.org/sax/features/external-parameter-entities", //$NON-NLS-1$
+					false);
+			spf.setFeature(
+					"http://apache.org/xml/features/disallow-doctype-decl", //$NON-NLS-1$
+					true);
+			xr = spf.newSAXParser().getXMLReader();
 		} catch (SAXException | ParserConfigurationException e) {
 			throw new IOException(JGitText.get().noXMLParserAvailable, e);
 		}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java
index 4fec5da..686e9cc 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java
@@ -750,8 +750,19 @@ void list() throws IOException {
 
 					final XMLReader xr;
 					try {
-						xr = SAXParserFactory.newInstance().newSAXParser()
-								.getXMLReader();
+						SAXParserFactory saxParserFactory = SAXParserFactory
+								.newInstance();
+						saxParserFactory.setNamespaceAware(true);
+						saxParserFactory.setFeature(
+								"http://xml.org/sax/features/external-general-entities", //$NON-NLS-1$
+								false);
+						saxParserFactory.setFeature(
+								"http://xml.org/sax/features/external-parameter-entities", //$NON-NLS-1$
+								false);
+						saxParserFactory.setFeature(
+								"http://apache.org/xml/features/disallow-doctype-decl", //$NON-NLS-1$
+								true);
+						xr = saxParserFactory.newSAXParser().getXMLReader();
 					} catch (SAXException | ParserConfigurationException e) {
 						throw new IOException(
 								JGitText.get().noXMLParserAvailable, e);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
index f245eae..a7b379a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
@@ -1966,10 +1966,9 @@ public static final class AdvertisedRequestValidator
 		@Override
 		public void checkWants(UploadPack up, List<ObjectId> wants)
 				throws PackProtocolException, IOException {
-			if (!up.isBiDirectionalPipe())
+			if (!up.isBiDirectionalPipe() || !wants.isEmpty()) {
 				new ReachableCommitRequestValidator().checkWants(up, wants);
-			else if (!wants.isEmpty())
-				throw new WantNotValidException(wants.iterator().next());
+			}
 		}
 	}
 
diff --git a/pom.xml b/pom.xml
index 3744226..250e626 100644
--- a/pom.xml
+++ b/pom.xml
@@ -203,17 +203,9 @@
       <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>
     </pluginRepository>
-    <pluginRepository>
-      <id>repo.eclipse.org.dash-snapshots</id>
-      <url>https://repo.eclipse.org/content/repositories/dash-licenses-snapshots/</url>
-    </pluginRepository>
   </pluginRepositories>
 
   <build>
@@ -421,6 +413,19 @@
               </rules>
             </configuration>
           </execution>
+          <execution>
+            <id>enforce-java</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireJavaVersion>
+                  <version>17</version>
+                </requireJavaVersion>
+              </rules>
+            </configuration>
+          </execution>
         </executions>
       </plugin>