Index: /trunk/test/unit/org/openstreetmap/josm/data/imagery/WMSEndpointTileSourceTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/imagery/WMSEndpointTileSourceTest.java	(revision 13734)
+++ /trunk/test/unit/org/openstreetmap/josm/data/imagery/WMSEndpointTileSourceTest.java	(revision 13735)
@@ -6,4 +6,5 @@
 import java.nio.file.Files;
 import java.nio.file.Paths;
+import java.util.Arrays;
 
 import org.junit.Rule;
@@ -15,6 +16,7 @@
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
-import com.github.tomakehurst.wiremock.WireMockServer;
 import com.github.tomakehurst.wiremock.client.WireMock;
+import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -28,14 +30,20 @@
     public JOSMTestRules test = new JOSMTestRules().platform().projection();
 
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public WireMockRule tileServer = new WireMockRule(WireMockConfiguration.options().dynamicPort());
+
     @Test
     public void testDefaultLayerSetInMaps() throws Exception {
-        WireMockServer getCapabilitiesMock = TestUtils.getWireMockServer();
-        String getCapabilitiesBody = new String(Files.readAllBytes(Paths.get(TestUtils.getTestDataRoot() + "wms/geofabrik-osm-inspector.xml")), "UTF-8");
-        // do not use withFileBody as it needs different directory layout :(
-        getCapabilitiesMock.stubFor(WireMock.get(WireMock.anyUrl()).willReturn(WireMock.aResponse().withBody(getCapabilitiesBody)));
-        getCapabilitiesMock.start();
 
-        WireMockServer mapsMock = TestUtils.getWireMockServer();
-        mapsMock.stubFor(WireMock.get(WireMock.anyUrl()).willReturn(WireMock.aResponse().withBody(
+        tileServer.stubFor(
+                WireMock.get(WireMock.urlEqualTo("/capabilities?SERVICE=WMS&REQUEST=GetCapabilities"))
+                .willReturn(
+                        WireMock.aResponse()
+                        .withBody(Files.readAllBytes(Paths.get(TestUtils.getTestDataRoot() + "wms/geofabrik-osm-inspector.xml")))
+                        )
+                );
+
+        tileServer.stubFor(WireMock.get(WireMock.urlEqualTo("//maps")).willReturn(WireMock.aResponse().withBody(
                 "<?xml version='1.0' encoding='UTF-8'?>\n" +
                 "<imagery xmlns=\"http://josm.openstreetmap.de/maps-1.0\">\n" +
@@ -44,5 +52,5 @@
                 "<id>OSM_Inspector-Geometry</id>\n" +
                 "<type>wms_endpoint</type>\n" +
-                "<url><![CDATA[" + getCapabilitiesMock.url("/any") + "]]></url>\n" +
+                "<url><![CDATA[" + tileServer.url("/capabilities") + "]]></url>\n" +
                 "<icon>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAAB5UlEQVQ4y4WTwWsTURDGfy8W1yYmXZOqtGJJFyGw6KF7CEigwYuS0kthrYUi4i0iORS9BU9hQdA/ILcixVBrwENKLz1FUBB0wWOwYFAqxUNYTZq6BfM8yC5d05iBObz3vfnmm3kz4sqDh/zP7szdlG5I+Of1zQ1xFA8xxI4GH2cjg4Cl+UUJcC4SJq6c7FPkKRlIoPQk0+NnuDwxHrhvuYd83+8OVuBlHouE/eDXzW8+/qO9DyHB0vyiVHoy2INSNiPdeg23XuPs3icmIoofPKXGmFJjjEUjgf4EFNi2TT6fJ5FI0Gg0ePrkMRfnbvn41QsJgEAJAQUdbYZyuQxAcvoSpmnydesFAF+cn8f2KUCw/fGt6GgzWJbF706bVCoFwGxyktnk5N8kB79QepL1zQ3xbOulCJWyGbkQHZWlbEZ6JIZhBDI1nQ5Np8P2zi4t9zAwGyNe3QALti11XSedTvsPYrEY73f3Bk+irusAnI6qrNy7z43sNUbFCQC6LYdCoYBbr/k1/2sh690HUalUaH7eIRxXA+6RFItF3HqN6+dP9REIb5lK2Yy0bdsHDMMgl8vRbTkAhOMqlmVhmibLq2ui7xsf1d+IV+0D3zVNw7KsPiXVapXnd2/Lodu4vLomTNMcSvIHY6bDkqJtEqIAAAAASUVORK5CYII=</icon>\n" +
                 "<attribution-text mandatory=\"true\">© Geofabrik GmbH, OpenStreetMap contributors, CC-BY-SA</attribution-text>\n" +
@@ -56,6 +64,6 @@
                 "</imagery>"
                 )));
-        mapsMock.start();
-        Config.getPref().put("josm.url", mapsMock.url("/"));
+
+        Config.getPref().putList("imagery.layers.sites", Arrays.asList(tileServer.url("//maps")));
         ImageryLayerInfo.instance.loadDefaults(true, null, false);
         assertEquals(1, ImageryLayerInfo.instance.getDefaultLayers().size());
@@ -68,5 +76,4 @@
                 + "SRS=EPSG:3857&WIDTH=512&HEIGHT=512&"
                 + "BBOX=20037506.6204108,-60112521.5836107,60112521.5836107,-20037506.6204108", tileSource.getTileUrl(1, 1, 1));
-
     }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java	(revision 13734)
+++ /trunk/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java	(revision 13735)
@@ -13,7 +13,9 @@
 import java.util.Arrays;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.ClassRule;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.openstreetmap.gui.jmapviewer.tilesources.TemplatedTMSTileSource;
@@ -28,6 +30,7 @@
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
-import com.github.tomakehurst.wiremock.WireMockServer;
 import com.github.tomakehurst.wiremock.client.WireMock;
+import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -43,5 +46,9 @@
     @ClassRule
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    public static JOSMTestRules test = new JOSMTestRules().preferences().platform();
+    public static JOSMTestRules test = new JOSMTestRules().preferences().platform().projection().timeout((int)TimeUnit.MINUTES.toMillis(5));
+
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public WireMockRule tileServer = new WireMockRule(WireMockConfiguration.options().dynamicPort());
 
     private ImageryInfo testImageryTMS = new ImageryInfo("test imagery", "http://localhost", "tms", null, null);
@@ -339,12 +346,20 @@
     public void testDefaultLayer() throws Exception {
         // https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/1.0.0/WMTSCapabilities.xml
-        WireMockServer getCapabilitiesMock = TestUtils.getWireMockServer();
-        String getCapabilitiesBody = new String(Files.readAllBytes(Paths.get(TestUtils.getTestDataRoot() + "wmts/getCapabilities-lots-of-layers.xml")), "UTF-8");
         // do not use withFileBody as it needs different directory layout :(
-        getCapabilitiesMock.stubFor(WireMock.get(WireMock.anyUrl()).willReturn(WireMock.aResponse().withBody(getCapabilitiesBody)));
-        getCapabilitiesMock.start();
-
-        WireMockServer mapsMock = TestUtils.getWireMockServer();
-        mapsMock.stubFor(WireMock.get(WireMock.anyUrl()).willReturn(WireMock.aResponse().withBody(
+
+        tileServer.stubFor(
+                WireMock.get("/getcapabilities.xml")
+                .willReturn(
+                        WireMock.aResponse()
+                        .withBody(Files.readAllBytes(
+                                Paths.get(TestUtils.getTestDataRoot() + "wmts/getCapabilities-lots-of-layers.xml"))
+                                )
+                        )
+                );
+
+        tileServer.stubFor(
+                WireMock.get("//maps")
+                .willReturn(
+                        WireMock.aResponse().withBody(
                 "<?xml version='1.0' encoding='UTF-8'?>\n" +
                 "<imagery xmlns=\"http://josm.openstreetmap.de/maps-1.0\">\n" +
@@ -353,5 +368,5 @@
                 "<id>landsat</id>\n" +
                 "<type>wmts</type>\n" +
-                "<url><![CDATA[" + getCapabilitiesMock.url("/getcapabilities.xml") + "]]></url>\n" +
+                "<url><![CDATA[" + tileServer.url("/getcapabilities.xml") + "]]></url>\n" +
                 "<defaultLayers>" +
                 "<layer name=\"GEOGRAPHICALGRIDSYSTEMS.MAPS\" />" +
@@ -360,7 +375,6 @@
                 "</imagery>"
                 )));
-        mapsMock.start();
-        Config.getPref().put("josm.url", mapsMock.url("/"));
-
+
+        Config.getPref().putList("imagery.layers.sites", Arrays.asList(tileServer.url("//maps")));
         ImageryLayerInfo.instance.loadDefaults(true, null, false);
 
Index: /trunk/test/unit/org/openstreetmap/josm/io/imagery/WMSImageryTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/imagery/WMSImageryTest.java	(revision 13734)
+++ /trunk/test/unit/org/openstreetmap/josm/io/imagery/WMSImageryTest.java	(revision 13735)
@@ -7,5 +7,4 @@
 import java.io.IOException;
 import java.nio.file.Files;
-import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.List;
@@ -17,6 +16,7 @@
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
-import com.github.tomakehurst.wiremock.WireMockServer;
 import com.github.tomakehurst.wiremock.client.WireMock;
+import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -34,4 +34,7 @@
     public JOSMTestRules test = new JOSMTestRules().platform().projection();
 
+    @Rule
+    public WireMockRule tileServer = new WireMockRule(WireMockConfiguration.options()
+            .dynamicPort());
     /**
      * Unit test of {@code WMSImagery.WMSGetCapabilitiesException} class
@@ -55,20 +58,18 @@
     @Test
     public void testTicket15730() throws IOException, WMSGetCapabilitiesException {
-       WireMockServer wm = TestUtils.getWireMockServer(15730);
-       wm.stubFor(WireMock.get(WireMock.anyUrl()).willReturn(WireMock.aResponse().withBodyFile("capabilities.xml")));
-       wm.start();
-       WMSImagery wms = new WMSImagery(wm.url("capabilities.xml"));
-       assertEquals(1, wms.getLayers().size());
-       assertTrue(wms.getLayers().get(0).getAbstract().startsWith("South Carolina  NAIP Imagery 2017    Resolution: 100CM "));
-       wm.shutdown();
+        tileServer.stubFor(WireMock.get(WireMock.anyUrl()).willReturn(WireMock.aResponse().withBody(
+                Files.readAllBytes(Paths.get(TestUtils.getRegressionDataDir(15730), "capabilities.xml"))
+                )));
+
+        WMSImagery wms = new WMSImagery(tileServer.url("capabilities.xml"));
+        assertEquals(1, wms.getLayers().size());
+        assertTrue(wms.getLayers().get(0).getAbstract().startsWith("South Carolina  NAIP Imagery 2017    Resolution: 100CM "));
     }
 
     @Test
     public void testNestedLayers() throws Exception {
-        WireMockServer getCapabilitiesMock = TestUtils.getWireMockServer();
-        String getCapabilitiesBody = new String(Files.readAllBytes(Paths.get(TestUtils.getTestDataRoot() + "wms/mapa-um-warszawa-pl.xml")), "UTF-8");
-        getCapabilitiesMock.stubFor(WireMock.get(WireMock.anyUrl()).willReturn(WireMock.aResponse().withBody(getCapabilitiesBody)));
-        getCapabilitiesMock.start();
-        WMSImagery wmsi = new WMSImagery(getCapabilitiesMock.url("/serwis"));
+        tileServer.stubFor(WireMock.get(WireMock.anyUrl()).willReturn(WireMock.aResponse().withBody(
+                Files.readAllBytes(Paths.get(TestUtils.getTestDataRoot() + "wms/mapa-um-warszawa-pl.xml")))));
+        WMSImagery wmsi = new WMSImagery(tileServer.url("/serwis"));
         assertEquals(1, wmsi.getLayers().size());
         assertEquals("Server WMS m.st. Warszawy", wmsi.getLayers().get(0).toString());
@@ -83,11 +84,8 @@
     @Test
     public void testTicket16248() throws IOException, WMSGetCapabilitiesException {
-        Path capabilitiesPath = Paths.get(TestUtils.getRegressionDataFile(16248, "capabilities.xml"));
-        WireMockServer getCapabilitiesMock = TestUtils.getWireMockServer();
-        getCapabilitiesMock.stubFor(
+        tileServer.stubFor(
                 WireMock.get(WireMock.anyUrl())
-                .willReturn(WireMock.aResponse().withBody(Files.readAllBytes(capabilitiesPath))));
-        getCapabilitiesMock.start();
-        WMSImagery wms = new WMSImagery(getCapabilitiesMock.url("any"));
+                .willReturn(WireMock.aResponse().withBody(Files.readAllBytes(Paths.get(TestUtils.getRegressionDataFile(16248, "capabilities.xml"))))));
+        WMSImagery wms = new WMSImagery(tileServer.url("any"));
         assertEquals("http://wms.hgis.cartomatic.pl/topo/3857/m25k", wms.buildRootUrl());
         assertEquals("wms.hgis.cartomatic.pl", wms.getLayers().get(0).getName());
