Index: /trunk/.classpath
===================================================================
--- /trunk/.classpath	(revision 16228)
+++ /trunk/.classpath	(revision 16229)
@@ -23,9 +23,4 @@
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="lib" path="test/lib/jmockit.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4">
 		<attributes>
@@ -34,39 +29,4 @@
 	</classpathentry>
 	<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=JOSM&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=ivysettings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=&amp;propertyFiles="/>
-	<classpathentry kind="lib" path="test/lib/jfcunit.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry exported="true" kind="lib" path="test/lib/equalsverifier-3.1.2.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="lib" path="test/lib/classgraph-4.6.32.jar" sourcepath="C:/Users/vippy/.m2/repository/io/github/classgraph/classgraph/4.6.32/classgraph-4.6.32-sources.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="lib" path="test/lib/system-rules-1.19.0.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="lib" path="test/lib/commons-testing/commons-testing-2.1.0.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry exported="true" kind="lib" path="test/lib/wiremock-standalone-2.20.0.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry exported="true" kind="lib" path="test/lib/awaitility-3.1.5.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
 		<attributes>
@@ -80,14 +40,4 @@
 		</accessrules>
 	</classpathentry>
-	<classpathentry kind="lib" path="tools/commons-lang3-3.8.1.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry exported="true" kind="lib" path="tools/spotbugs/spotbugs-annotations.jar">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
Index: /trunk/.settings/org.eclipse.core.resources.prefs
===================================================================
--- /trunk/.settings/org.eclipse.core.resources.prefs	(revision 16228)
+++ /trunk/.settings/org.eclipse.core.resources.prefs	(revision 16229)
@@ -1,3 +1,15 @@
 eclipse.preferences.version=1
 encoding//native/windows/locale=ISO-8859-1
+encoding//resources/data/validator/addresses.mapcss=UTF-8
+encoding//resources/data/validator/combinations.mapcss=UTF-8
+encoding//resources/data/validator/deprecated.mapcss=UTF-8
+encoding//resources/data/validator/geometry.mapcss=UTF-8
+encoding//resources/data/validator/highway.mapcss=UTF-8
+encoding//resources/data/validator/multiple.mapcss=UTF-8
+encoding//resources/data/validator/numeric.mapcss=UTF-8
+encoding//resources/data/validator/relation.mapcss=UTF-8
+encoding//resources/data/validator/religion.mapcss=UTF-8
+encoding//resources/data/validator/territories.mapcss=UTF-8
+encoding//resources/data/validator/unnecessary.mapcss=UTF-8
+encoding//resources/data/validator/wikipedia.mapcss=UTF-8
 encoding/<project>=UTF-8
Index: /trunk/build.xml
===================================================================
--- /trunk/build.xml	(revision 16228)
+++ /trunk/build.xml	(revision 16229)
@@ -68,5 +68,4 @@
         <property name="javacutil.jar" location="${tools.dir}/javacutil.jar"/>
         <property name="failureaccess.jar" location="${tools.dir}/failureaccess.jar"/>
-        <property name="commons-lang3.jar" location="${tools.dir}/commons-lang3-3.8.1.jar"/>
         <property name="jformatstring.jar" location="${spotbugs.dir}/jFormatString-3.0.0.jar"/>
         <property name="dist.jar" location="${dist.dir}/josm-custom.jar"/>
@@ -103,14 +102,4 @@
             <isset property="isJava9"/>
         </condition>
-        <path id="test.classpath">
-            <fileset dir="${test.dir}/lib">
-                <include name="**/*.jar"/>
-            </fileset>
-            <pathelement path="${build.dir}"/>
-            <pathelement path="${resources.dir}"/>
-            <pathelement path="${failureaccess.jar}"/>
-            <pathelement path="${commons-lang3.jar}"/>
-            <pathelement path="${spotbugs.dir}/spotbugs-annotations.jar"/>
-        </path>
         <path id="processor.path">
             <pathelement location="${error_prone_core.jar}"/>
@@ -400,4 +389,11 @@
         <init-test-preferences testfamily="functional"/>
         <init-test-preferences testfamily="performance"/>
+        <path id="test.classpath">
+            <path refid="test.path"/>
+            <pathelement path="${build.dir}"/>
+            <pathelement path="${resources.dir}"/>
+        </path>
+    	<ivy:retrieve pattern="${test.dir}/lib/[artifact].[ext]" conf="jmockit"/>
+    	<ivy:retrieve pattern="${tools.dir}/[conf].[ext]" conf="jacocoant"/>
         <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml" classpath="${tools.dir}/jacocoant.jar" />
     </target>
@@ -922,9 +918,9 @@
                 pluginList=""
                 excludeFilter="${spotbugs.dir}/josm-filter.xml"
-        	    onlyAnalyze="org.openstreetmap.josm.-"
+                onlyAnalyze="org.openstreetmap.josm.-"
                 effort="max"
                 reportLevel="low"
                 >
-        	<class location="${dist.jar}" />
+            <class location="${dist.jar}" />
         </spotbugs>
     </target>
@@ -1146,8 +1142,12 @@
     <target name="bootstrap-workspace" description="Copy libraries from ivy cache to workspace folders for IDE" depends="resolve">
         <delete dir="${lib.dir}"/>
-        <ivy:retrieve pattern="${lib.dir}/compile/[artifact]-[type].[ext]" conf="compile"/>
-        <ivy:retrieve pattern="${lib.dir}/runtime/[artifact]-[type].[ext]" conf="runtime"/>
-        <ivy:retrieve pattern="${lib.dir}/sources/[artifact]-[type].[ext]" conf="sources"/>
-        <ivy:retrieve pattern="${lib.dir}/tools/[artifact]-[type].[ext]" conf="javacc,checkstyle" file="${tools.ivy}"/>
+        <ivy:retrieve pattern="${lib.dir}/[conf]/[artifact]-[type].[ext]" conf="compile,runtime,sources,test"/>
+        <ivy:retrieve pattern="${lib.dir}/tools/[artifact]-[type].[ext]" conf="javacc,checkstyle,pmd,spotbugs" file="${tools.ivy}"/>
+    </target>
+    <target name="api-dependency-tree" description="Displays Ivy dependency tree for JOSM API" depends="resolve">
+        <ivy:dependencytree conf="api"/>
+    </target>
+    <target name="test-dependency-tree" description="Displays Ivy dependency tree for JOSM tests" depends="resolve">
+        <ivy:dependencytree conf="test"/>
     </target>
 </project>
Index: /trunk/ivy.xml
===================================================================
--- /trunk/ivy.xml	(revision 16228)
+++ /trunk/ivy.xml	(revision 16229)
@@ -4,5 +4,5 @@
     <info organisation="org.openstreetmap" module="josm"/>
     <configurations>
-        <!--  configuration that should be used when specifying dependencies -->
+        <!--  configurations that should be used when specifying dependencies -->
         <conf name="implementation" description="All libs JOSM uses that plugins should not use"/>
         <conf name="api" description="All libs that JOSM uses and are available for plugins"/>
@@ -10,31 +10,52 @@
         <conf name="provided" description="The libs we need during compilation but not on application start"/>
         <conf name="epsg" description="Everything epsg needs- which is currently all of JOSM."/>
-        <!--  Meta configuration used in build scripts -->
+        <!-- Special configurations used to retrieve jar files of test lib/tools referred by file path -->
+        <conf name="jmockit" description="JMockit test library"/>
+        <conf name="jacocoant" description="Jacoco Ant test library"/>
+        <!--  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"/>
+        <conf name="test" description="Libraries only needed for testing" extends="compile,runtime,jmockit"/>
         <conf name="sources" description="Source code of used libraries"/>
     </configurations>
     <dependencies>
         <!-- api->default -->
-        <dependency org="org.openstreetmap.jmapviewer" name="jmapviewer" rev="2.13" conf="api->default"/>
-        <dependency org="javax.json" name="javax.json-api" rev="1.1.4" conf="api->default"/>
-        <dependency org="org.glassfish" name="javax.json" rev="1.1.4" conf="api->default"/>
-        <dependency org="commons-logging" name="commons-logging" rev="1.2" conf="api->default"/>
-        <dependency org="org.apache.commons" name="commons-jcs-core" rev="3.0-SNAPSHOT" conf="api->default"/>
-        <dependency org="org.apache.commons" name="commons-compress" rev="1.20" conf="api->default"/>
-        <dependency org="org.tukaani" name="xz" rev="1.8" conf="api->default"/>
-        <dependency org="com.drewnoakes" name="metadata-extractor" rev="2.13.0" conf="api->default"/>
-        <dependency org="ch.poole" name="OpeningHoursParser" rev="0.21.1" conf="api->default"/>
+        <dependency conf="api->default" org="org.openstreetmap.jmapviewer" name="jmapviewer" rev="2.13"/>
+        <dependency conf="api->default" org="javax.json" name="javax.json-api" rev="1.1.4"/>
+        <dependency conf="api->default" org="org.glassfish" name="javax.json" rev="1.1.4"/>
+        <dependency conf="api->default" org="commons-logging" name="commons-logging" rev="1.2"/>
+        <dependency conf="api->default" org="org.apache.commons" name="commons-jcs-core" rev="3.0-SNAPSHOT"/>
+        <dependency conf="api->default" org="org.apache.commons" name="commons-compress" rev="1.20"/>
+        <dependency conf="api->default" org="org.tukaani" name="xz" rev="1.8"/>
+        <dependency conf="api->default" org="com.drewnoakes" name="metadata-extractor" rev="2.13.0"/>
+        <dependency conf="api->default" org="ch.poole" name="OpeningHoursParser" rev="0.21.1"/>
         <!-- sources->sources -->
-        <dependency org="org.openstreetmap.jmapviewer" name="jmapviewer" rev="2.13" conf="sources->sources"/>
-        <dependency org="javax.json" name="javax.json-api" rev="1.1.4" conf="sources->sources"/>
-        <dependency org="org.glassfish" name="javax.json" rev="1.1.4" conf="sources->sources"/>
-        <dependency org="commons-logging" name="commons-logging" rev="1.2" conf="sources->sources"/>
-        <dependency org="org.apache.commons" name="commons-jcs-core" rev="3.0-SNAPSHOT" conf="sources->sources"/>
-        <dependency org="org.apache.commons" name="commons-compress" rev="1.20" conf="sources->sources"/>
-        <dependency org="org.tukaani" name="xz" rev="1.8" conf="sources->sources"/>
-        <dependency org="com.drewnoakes" name="metadata-extractor" rev="2.13.0" conf="sources->sources"/>
-        <dependency org="ch.poole" name="OpeningHoursParser" rev="0.21.1" conf="sources->sources"/>
+        <dependency conf="sources->sources" org="org.openstreetmap.jmapviewer" name="jmapviewer" rev="2.13"/>
+        <dependency conf="sources->sources" org="javax.json" name="javax.json-api" rev="1.1.4"/>
+        <dependency conf="sources->sources" org="org.glassfish" name="javax.json" rev="1.1.4"/>
+        <dependency conf="sources->sources" org="commons-logging" name="commons-logging" rev="1.2"/>
+        <dependency conf="sources->sources" org="org.apache.commons" name="commons-jcs-core" rev="3.0-SNAPSHOT"/>
+        <dependency conf="sources->sources" org="org.apache.commons" name="commons-compress" rev="1.20"/>
+        <dependency conf="sources->sources" org="org.tukaani" name="xz" rev="1.8"/>
+        <dependency conf="sources->sources" org="com.drewnoakes" name="metadata-extractor" rev="2.13.0"/>
+        <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.21.1"/>
+        <!-- jacocoant->default -->
+        <dependency conf="jacocoant->default" org="org.jacoco" name="org.jacoco.ant" rev="0.8.6-SNAPSHOT">
+        	<artifact name="org.jacoco.ant" type="jar" maven:classifier="nodeps"/>
+        </dependency>
+        <!-- jmockit->default - Don't upgrade JMockit until https://josm.openstreetmap.de/ticket/18200 is resolved -->
+        <dependency conf="jmockit->default" org="org.jmockit" name="jmockit" rev="1.44"/>
+        <!-- test->default -->
+        <dependency conf="test->default" org="com.github.spotbugs" name="spotbugs-annotations" rev="4.0.1"/>
+        <dependency conf="test->default" org="com.github.stefanbirkner" name="system-rules" rev="1.19.0">
+        	<exclude module="junit-dep" />
+        </dependency>
+        <dependency conf="test->default" org="com.github.tomakehurst" name="wiremock" rev="2.26.3"/>
+        <dependency conf="test->default" org="io.github.classgraph" name="classgraph" rev="4.8.67"/>
+        <dependency conf="test->default" org="junit" name="junit" rev="4.12"/>
+        <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.1.13"/>
+        <dependency conf="test->default" org="org.apache.commons" name="commons-lang3" rev="3.10"/>
+        <dependency conf="test->default" org="org.awaitility" name="awaitility" rev="4.0.2"/>
     </dependencies>
 </ivy-module>
Index: /trunk/ivysettings.xml
===================================================================
--- /trunk/ivysettings.xml	(revision 16228)
+++ /trunk/ivysettings.xml	(revision 16229)
@@ -8,4 +8,5 @@
       <ibiblio name="josm-nexus-snapshots" m2compatible="true" root="https://josm.openstreetmap.de/nexus/content/repositories/snapshots/" />
       <ibiblio name="jcenter" m2compatible="true" root="https://jcenter.bintray.com/" />
+      <ibiblio name="oss-sonatype-snapshots" m2compatible="true" root="https://oss.sonatype.org/content/repositories/snapshots/" />
     </chain>
   </resolvers>
Index: /trunk/tools/checkstyle/META-INF/MANIFEST.MF
===================================================================
--- /trunk/tools/checkstyle/META-INF/MANIFEST.MF	(revision 16228)
+++ /trunk/tools/checkstyle/META-INF/MANIFEST.MF	(revision 16229)
@@ -3,5 +3,5 @@
 Bundle-Name: JOSM Checkstyle Eclipse Plugin
 Bundle-SymbolicName: org.openstreetmap.josm.checkstyle-eclipse-plugin;singleton:=true
-Bundle-Version: 8.27.0.qualifier
+Bundle-Version: 8.29.0.qualifier
 Require-Bundle: net.sf.eclipsecs.checkstyle,
  net.sf.eclipsecs.core,
Index: /trunk/tools/ivy.xml
===================================================================
--- /trunk/tools/ivy.xml	(revision 16228)
+++ /trunk/tools/ivy.xml	(revision 16229)
@@ -14,5 +14,5 @@
         <dependency org="net.java.dev.javacc" name="javacc" rev="7.0.3" conf="javacc->default"/>
         <!-- checkstyle->default -->
-        <dependency org="com.puppycrawl.tools" name="checkstyle" rev="8.27" conf="checkstyle->default"/>
+        <dependency org="com.puppycrawl.tools" name="checkstyle" rev="8.29" conf="checkstyle->default"/>
         <!-- proguard->default -->
         <dependency org="net.sf.proguard" name="proguard-anttask" rev="6.2.2" conf="proguard->default"/>
@@ -25,6 +25,6 @@
         </dependency>
         <!-- spotbugs->default -->
-        <dependency org="com.github.spotbugs" name="spotbugs" rev="3.1.12" conf="spotbugs->default"/>
-        <dependency org="com.github.spotbugs" name="spotbugs-ant" rev="3.1.12" conf="spotbugs->default"/>
+        <dependency org="com.github.spotbugs" name="spotbugs" rev="4.0.1" conf="spotbugs->default"/>
+        <dependency org="com.github.spotbugs" name="spotbugs-ant" rev="4.0.1" conf="spotbugs->default"/>
     </dependencies>
 </ivy-module>
