Index: /trunk/build.xml
===================================================================
--- /trunk/build.xml	(revision 19249)
+++ /trunk/build.xml	(revision 19250)
@@ -388,4 +388,5 @@
             <pathelement path="${resources.dir}"/>
         </path>
+        <ivy:retrieve log="download-only" pattern="${test.dir}/lib/[artifact].[ext]" conf="junit5-system-exit"/>
         <ivy:retrieve log="download-only" pattern="${test.dir}/lib/[artifact].[ext]" conf="jmockit"/>
         <ivy:retrieve log="download-only" pattern="${tools.dir}/[artifact].[ext]" conf="commonslang"/>
@@ -464,4 +465,5 @@
                         <jvmarg value="-Djava.locale.providers=SPI,CLDR" />
                         <jvmarg value="-Djava.security.manager=allow" if:set="isJava17" />
+                        <jvmarg value="-javaagent:${test.dir}/lib/junit5-system-exit.jar" if:set="isJava17"/>
                         <jvmarg value="-javaagent:${test.dir}/lib/jmockit.jar"/>
                         <jvmarg value="-Djunit.jupiter.extensions.autodetection.enabled=true"/>
Index: /trunk/ivy.xml
===================================================================
--- /trunk/ivy.xml	(revision 19249)
+++ /trunk/ivy.xml	(revision 19250)
@@ -13,8 +13,9 @@
         <conf name="jmockit" description="JMockit test library"/>
         <conf name="jacocoant" description="Jacoco Ant test library"/>
+        <conf name="junit5-system-exit" description="Everything needed for running junit5-system-exit as a javaagent"/>
         <!--  Meta configurations used in build scripts -->
         <conf name="runtime" description="Libraries only needed at runtime" extends="implementation,api,runtimeOnly"/>
         <conf name="compile" description="Libraries needed only for compilation" extends="implementation,api,provided"/>
-        <conf name="test" description="Libraries only needed for testing" extends="compile,runtime,commonslang,jmockit"/>
+        <conf name="test" description="Libraries only needed for testing" extends="compile,runtime,commonslang,jmockit,junit5-system-exit"/>
         <conf name="sources" description="Source code of used libraries"/>
     </configurations>
@@ -34,5 +35,5 @@
         <dependency conf="api->default" org="ch.poole" name="OpeningHoursParser" rev="0.28.2"/>
         <!-- Don't forget to update org.openstreetmap.josm.tools.Tag2Link#PREF_SOURCE -->
-        <dependency conf="api->default" org="org.webjars.npm" name="tag2link" rev="2024.8.21"/>
+        <dependency conf="api->default" org="org.webjars.npm" name="tag2link" rev="2024.10.21"/>
         <!-- sources->sources -->
         <dependency conf="sources->sources" org="org.openstreetmap.jmapviewer" name="jmapviewer" rev="2.22"/>
@@ -47,5 +48,5 @@
         <dependency conf="sources->sources" org="com.formdev" name="svgSalamander" rev="1.1.4"/>
         <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.28.2"/>
-        <dependency conf="sources->default" org="org.webjars.npm" name="tag2link" rev="2024.8.21"/><!-- sources->default sic! (tag2link-sources.jar is empty, see #19335) -->
+        <dependency conf="sources->default" org="org.webjars.npm" name="tag2link" rev="2024.10.21"/><!-- sources->default sic! (tag2link-sources.jar is empty, see #19335) -->
         <!-- commonslang->default -->
         <dependency conf="commonslang->default" org="org.apache.commons" name="commons-lang3" rev="3.17.0"/>
@@ -55,16 +56,16 @@
         </dependency>
         <dependency conf="jmockit->default" org="org.jmockit" name="jmockit" rev="1.49.a"/>
+        <dependency conf="junit5-system-exit->default" org="com.ginsberg" name="junit5-system-exit" rev="${versions.junit5-system-exit}"/>
         <!-- test->default -->
         <dependency conf="test->default" org="com.github.spotbugs" name="spotbugs-annotations" rev="4.8.6"/>
-        <dependency conf="test->default" org="com.ginsberg" name="junit5-system-exit" rev="1.1.2"/>
-        <dependency conf="test->default" org="org.wiremock" name="wiremock" rev="3.9.1"/>
-        <dependency conf="test->default" org="io.github.classgraph" name="classgraph" rev="4.8.175"/>
-        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-launcher" rev="1.11.0"/>
-        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-suite" rev="1.11.0"/>
-        <dependency conf="test->default" org="org.junit.vintage" name="junit-vintage-engine" rev="5.11.0"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-params" rev="5.11.0"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-api" rev="5.11.0"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-engine" rev="5.11.0"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-migrationsupport" rev="5.11.0"/>
+        <dependency conf="test->default" org="org.wiremock" name="wiremock" rev="3.9.2"/>
+        <dependency conf="test->default" org="io.github.classgraph" name="classgraph" rev="4.8.177"/>
+        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-launcher" rev="1.11.3"/>
+        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-suite" rev="1.11.3"/>
+        <dependency conf="test->default" org="org.junit.vintage" name="junit-vintage-engine" rev="5.11.3"/>
+        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-params" rev="5.11.3"/>
+        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-api" rev="5.11.3"/>
+        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-engine" rev="5.11.3"/>
+        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-migrationsupport" rev="5.11.3"/>
         <dependency conf="test->default" org="net.trajano.commons" name="commons-testing" rev="2.1.0"/>
         <dependency conf="test->default" org="nl.jqno.equalsverifier" name="equalsverifier" rev="3.16.2"/>
Index: /trunk/ivysettings.xml
===================================================================
--- /trunk/ivysettings.xml	(revision 19249)
+++ /trunk/ivysettings.xml	(revision 19250)
@@ -6,3 +6,6 @@
     <ibiblio name="josm-nexus" m2compatible="true" root="https://josm.openstreetmap.de/nexus/content/repositories/public/" />
   </resolvers>
+  <!-- Remove junit5-system-exit specific statements in build.xml when we drop Java 11 as a build platform -->
+  <property name="versions.junit5-system-exit" value="1.1.2" unlessset="isJava17"/>
+  <property name="versions.junit5-system-exit" value="2.0.0" ifset="isJava17"/>
 </ivysettings>
Index: /trunk/pom.xml
===================================================================
--- /trunk/pom.xml	(revision 19249)
+++ /trunk/pom.xml	(revision 19250)
@@ -41,4 +41,6 @@
     <default-junitIT-includes>**/*TestIT.class</default-junitIT-includes>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <!-- Needed just in case something adds argLine for tests before we set it -->
+    <argLine/>
   </properties>
   <packaging>jar</packaging>
@@ -463,5 +465,6 @@
           <!-- We might need @{argLine} in the future if another plugin has issues -->
           <argLine>
-            -javaagent:"${settings.localRepository}"/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
+            @{argLine}
+            -javaagent:${org.jmockit:jmockit:jar}
             --add-opens java.base/java.io=ALL-UNNAMED
             --add-opens java.base/java.lang=ALL-UNNAMED
@@ -742,3 +745,34 @@
     </plugins>
   </build>
+  <profiles>
+    <profile>
+      <id>java-17</id>
+      <activation>
+        <jdk>[17</jdk>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+          <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <!-- We might need @{argLine} in the future if another plugin has issues -->
+              <argLine>
+                @{argLine}
+                -javaagent:${com.ginsberg:junit5-system-exit:jar}
+                -javaagent:${org.jmockit:jmockit:jar}
+                --add-opens java.base/java.io=ALL-UNNAMED
+                --add-opens java.base/java.lang=ALL-UNNAMED
+                --add-opens java.base/java.nio=ALL-UNNAMED
+                --add-opens java.base/java.text=ALL-UNNAMED
+                --add-opens java.base/java.util=ALL-UNNAMED
+                --add-opens java.base/jdk.internal.loader=ALL-UNNAMED
+                --add-opens java.desktop/java.awt=ALL-UNNAMED
+                --add-opens java.prefs/java.util.prefs=ALL-UNNAMED
+              </argLine>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
Index: /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 19249)
+++ /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 19250)
@@ -65,5 +65,5 @@
 
     static final ListProperty PREF_SOURCE = new ListProperty("tag2link.source",
-            Collections.singletonList("resource://META-INF/resources/webjars/tag2link/2024.8.21/index.json"));
+            Collections.singletonList("resource://META-INF/resources/webjars/tag2link/2024.10.21/index.json"));
 
     static final CachingProperty<List<String>> PREF_SEARCH_ENGINES = new ListProperty("tag2link.search",
Index: /trunk/tools/ivy.xml
===================================================================
--- /trunk/tools/ivy.xml	(revision 19249)
+++ /trunk/tools/ivy.xml	(revision 19250)
@@ -17,12 +17,12 @@
         <dependency org="net.java.dev.javacc" name="javacc" rev="7.0.13" conf="javacc->default"/>
         <!-- checkstyle->default -->
-        <dependency org="com.puppycrawl.tools" name="checkstyle" rev="10.18.1" conf="checkstyle->default"/>
+        <dependency org="com.puppycrawl.tools" name="checkstyle" rev="10.18.2" conf="checkstyle->default"/>
         <!-- proguard->default -->
-        <dependency org="com.guardsquare" name="proguard-ant" rev="7.5.0" conf="proguard->default"/>
+        <dependency org="com.guardsquare" name="proguard-ant" rev="7.6.0" conf="proguard->default"/>
         <!-- pmd->default -->
-        <dependency org="net.sourceforge.pmd" name="pmd-core" rev="7.5.0" conf="pmd->default"/>
-        <dependency org="net.sourceforge.pmd" name="pmd-ant" rev="7.5.0" conf="pmd->default"/>
-        <dependency org="net.sourceforge.pmd" name="pmd-java" rev="7.5.0" conf="pmd->default"/>
-        <dependency org="org.xmlresolver" name="xmlresolver" rev="6.0.4" conf="pmd->default"/>
+        <dependency org="net.sourceforge.pmd" name="pmd-core" rev="7.6.0" conf="pmd->default"/>
+        <dependency org="net.sourceforge.pmd" name="pmd-ant" rev="7.6.0" conf="pmd->default"/>
+        <dependency org="net.sourceforge.pmd" name="pmd-java" rev="7.6.0" conf="pmd->default"/>
+        <dependency org="org.xmlresolver" name="xmlresolver" rev="6.0.10" conf="pmd->default"/>
         <!-- spotbugs->default -->
         <dependency org="com.github.spotbugs" name="spotbugs" rev="4.8.6" conf="spotbugs->default"/>
