Index: trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
===================================================================
--- trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java	(revision 12828)
+++ trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java	(revision 12842)
@@ -156,5 +156,5 @@
 
         // don't use atomic upload, the test API server can't cope with large diff uploads
-        Main.pref.put("osm-server.atomic-upload", false);
+        Main.pref.putBoolean("osm-server.atomic-upload", false);
 
         File dataSetCacheOutputFile = new File(System.getProperty("java.io.tmpdir"),
Index: trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java
===================================================================
--- trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java	(revision 12828)
+++ trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java	(revision 12842)
@@ -165,5 +165,5 @@
         // don't use atomic upload, the test API server can't cope with large diff uploads
         //
-        Main.pref.put("osm-server.atomic-upload", false);
+        Main.pref.putBoolean("osm-server.atomic-upload", false);
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
         Logging.setLogLevel(Logging.LEVEL_DEBUG);
Index: trunk/test/unit/org/openstreetmap/josm/actions/MergeNodesActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/MergeNodesActionTest.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/actions/MergeNodesActionTest.java	(revision 12842)
@@ -43,5 +43,5 @@
     @Test(expected = IllegalStateException.class)
     public void testSelectTargetLocationNodeInvalidMode() {
-        Main.pref.putInteger("merge-nodes.mode", -1);
+        Main.pref.putInt("merge-nodes.mode", -1);
         MergeNodesAction.selectTargetLocationNode(Arrays.asList(new Node(0), new Node(1)));
     }
@@ -52,12 +52,12 @@
     @Test
     public void testSelectTargetLocationNode() {
-        Main.pref.putInteger("merge-nodes.mode", 0);
+        Main.pref.putInt("merge-nodes.mode", 0);
         assertEquals(1, MergeNodesAction.selectTargetLocationNode(Arrays.asList(new Node(0), new Node(1))).getId());
 
-        Main.pref.putInteger("merge-nodes.mode", 1);
+        Main.pref.putInt("merge-nodes.mode", 1);
         assertEquals(LatLon.ZERO, MergeNodesAction.selectTargetLocationNode(
                 Arrays.asList(new Node(LatLon.NORTH_POLE), new Node(LatLon.SOUTH_POLE))).getCoor());
 
-        Main.pref.putInteger("merge-nodes.mode", 2);
+        Main.pref.putInt("merge-nodes.mode", 2);
         assertEquals(LatLon.NORTH_POLE, MergeNodesAction.selectTargetLocationNode(
                 Arrays.asList(new Node(LatLon.NORTH_POLE))).getCoor());
Index: trunk/test/unit/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollectionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollectionTest.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollectionTest.java	(revision 12842)
@@ -14,5 +14,5 @@
 import org.openstreetmap.josm.data.osm.search.SearchParseError;
 import org.openstreetmap.josm.data.osm.search.SearchSetting;
-import org.openstreetmap.josm.data.preferences.CollectionProperty;
+import org.openstreetmap.josm.data.preferences.ListProperty;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -53,5 +53,5 @@
         assertEquals(Arrays.asList(foo, baz), recentTags.toList());
 
-        final CollectionProperty pref = new CollectionProperty("properties.recent-tags", Collections.<String>emptyList());
+        final ListProperty pref = new ListProperty("properties.recent-tags", Collections.<String>emptyList());
         recentTags.saveToPreference(pref);
         assertEquals(Arrays.asList("name", "foo", "name", "baz"), pref.get());
Index: trunk/test/unit/org/openstreetmap/josm/gui/io/CustomConfiguratorTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/io/CustomConfiguratorTest.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/gui/io/CustomConfiguratorTest.java	(revision 12842)
@@ -44,5 +44,5 @@
         File tmp = File.createTempFile("josm.testExportPreferencesKeysToFile.lorem_ipsum", ".xml");
 
-        Main.pref.putCollection("lorem_ipsum", Arrays.asList(
+        Main.pref.putList("lorem_ipsum", Arrays.asList(
                 "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
                 "Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.",
@@ -57,13 +57,13 @@
         String xml = Utils.join("\n", Files.readAllLines(tmp.toPath(), StandardCharsets.UTF_8));
         assertTrue(xml.contains("<preferences operation=\"replace\">"));
-        for (String entry : Main.pref.getCollection("lorem_ipsum")) {
+        for (String entry : Main.pref.getList("lorem_ipsum")) {
             assertTrue(entry + "\nnot found in:\n" + xml, xml.contains(entry));
         }
 
-        Main.pref.putCollection("test", Arrays.asList("11111111", "2222222", "333333333"));
+        Main.pref.putList("test", Arrays.asList("11111111", "2222222", "333333333"));
         CustomConfigurator.exportPreferencesKeysByPatternToFile(tmp.getAbsolutePath(), true, "test");
         xml = Utils.join("\n", Files.readAllLines(tmp.toPath(), StandardCharsets.UTF_8));
         assertTrue(xml.contains("<preferences operation=\"append\">"));
-        for (String entry : Main.pref.getCollection("test")) {
+        for (String entry : Main.pref.getList("test")) {
             assertTrue(entry + "\nnot found in:\n" + xml, xml.contains(entry));
         }
@@ -79,10 +79,10 @@
     public void testReadXML() throws IOException {
         // Test 1 - read(dir, file) + append
-        Main.pref.putCollection("test", Collections.<String>emptyList());
-        assertTrue(Main.pref.getCollection("test").isEmpty());
+        Main.pref.putList("test", Collections.<String>emptyList());
+        assertTrue(Main.pref.getList("test").isEmpty());
         CustomConfigurator.readXML(TestUtils.getTestDataRoot() + "customconfigurator", "append.xml");
         String log = PreferencesUtils.getLog();
         assertFalse(log, log.contains("Error"));
-        assertFalse(Main.pref.getCollection("test").isEmpty());
+        assertFalse(Main.pref.getList("test").isEmpty());
 
         // Test 2 - read(file, pref) + replace
@@ -90,10 +90,10 @@
         // avoid messing up preferences file (that makes all following unit tests fail)
         pref.enableSaveOnPut(false);
-        pref.putCollection("lorem_ipsum", Arrays.asList("only 1 string"));
-        assertEquals(1, pref.getCollection("lorem_ipsum").size());
+        pref.putList("lorem_ipsum", Arrays.asList("only 1 string"));
+        assertEquals(1, pref.getList("lorem_ipsum").size());
         CustomConfigurator.readXML(new File(TestUtils.getTestDataRoot() + "customconfigurator", "replace.xml"), pref);
         log = PreferencesUtils.getLog();
         assertFalse(log, log.contains("Error"));
-        assertEquals(9, pref.getCollection("lorem_ipsum").size());
+        assertEquals(9, pref.getList("lorem_ipsum").size());
     }
 }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelperTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelperTest.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelperTest.java	(revision 12842)
@@ -42,6 +42,6 @@
     @Test
     public void testTicket12312() throws FileNotFoundException, IOException, SAXException {
-        Main.pref.put("draw.rawgps.colors.dynamic.layer 12312", true);
-        Main.pref.putInteger("draw.rawgps.colors.layer 12312", GpxDrawHelper.ColorMode.VELOCITY.toIndex());
+        Main.pref.putBoolean("draw.rawgps.colors.dynamic.layer 12312", true);
+        Main.pref.putInt("draw.rawgps.colors.layer 12312", GpxDrawHelper.ColorMode.VELOCITY.toIndex());
         final List<String> colors = calculateColors(TestUtils.getRegressionDataFile(12312, "single_trackpoint.gpx"), "12312", 1);
         assertEquals("[#FF00FF]", colors.toString());
@@ -68,5 +68,5 @@
     @Test
     public void testVelocity() throws IOException, SAXException {
-        Main.pref.putInteger("draw.rawgps.colors.layer 001", GpxDrawHelper.ColorMode.VELOCITY.toIndex());
+        Main.pref.putInt("draw.rawgps.colors.layer 001", GpxDrawHelper.ColorMode.VELOCITY.toIndex());
         final List<String> colors = calculateColors("data_nodist/2094047.gpx", "001", 10);
         assertEquals("[#FF00FF, #FFAD00, #FFA800, #FFA800, #FF9E00, #FF9400, #FF7000, #FF7000, #FF8000, #FF9400]", colors.toString());
@@ -81,6 +81,6 @@
     @Test
     public void testVelocityDynamic() throws IOException, SAXException {
-        Main.pref.putInteger("draw.rawgps.colors.layer 002", GpxDrawHelper.ColorMode.VELOCITY.toIndex());
-        Main.pref.put("draw.rawgps.colors.dynamic.layer 002", true);
+        Main.pref.putInt("draw.rawgps.colors.layer 002", GpxDrawHelper.ColorMode.VELOCITY.toIndex());
+        Main.pref.putBoolean("draw.rawgps.colors.dynamic.layer 002", true);
         final List<String> colors = calculateColors("data_nodist/2094047.gpx", "002", 10);
         assertEquals("[#FF00FF, #00FFE0, #00FFC2, #00FFC2, #00FF75, #00FF3D, #99FF00, #94FF00, #38FF00, #00FF38]", colors.toString());
@@ -95,5 +95,5 @@
     @Test
     public void testDirection() throws IOException, SAXException {
-        Main.pref.putInteger("draw.rawgps.colors.layer 003", GpxDrawHelper.ColorMode.DIRECTION.toIndex());
+        Main.pref.putInt("draw.rawgps.colors.layer 003", GpxDrawHelper.ColorMode.DIRECTION.toIndex());
         final List<String> colors = calculateColors("data_nodist/2094047.gpx", "003", 10);
         assertEquals("[#FF00FF, #EAEC25, #EDEA26, #EDE525, #ECD322, #EBB81D, #E85A0D, #E73708, #E84D0B, #EA8A15]", colors.toString());
@@ -108,5 +108,5 @@
     @Test
     public void testTime() throws IOException, SAXException {
-        Main.pref.putInteger("draw.rawgps.colors.layer 003", GpxDrawHelper.ColorMode.TIME.toIndex());
+        Main.pref.putInt("draw.rawgps.colors.layer 003", GpxDrawHelper.ColorMode.TIME.toIndex());
         final List<String> colors = calculateColors("data_nodist/2094047.gpx", "003", 10);
         assertEquals("[#FF00FF, #FF0000, #FF0000, #FF0500, #FF0500, #FF0A00, #FF0A00, #FF1F00, #FF2E00, #FF3300]", colors.toString());
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java	(revision 12842)
@@ -40,5 +40,5 @@
     @Before
     public void setUp() {
-        Main.pref.put("marker.traceaudio", true);
+        Main.pref.putBoolean("marker.traceaudio", true);
     }
 
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/audio/AudioPreferenceTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/audio/AudioPreferenceTest.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/gui/preferences/audio/AudioPreferenceTest.java	(revision 12842)
@@ -36,7 +36,7 @@
     @Test
     public void testAddGui() {
-        Main.pref.put("audio.menuinvisible", true);
+        Main.pref.putBoolean("audio.menuinvisible", true);
         PreferencesTestUtils.doTestPreferenceSettingAddGui(new AudioPreference.Factory(), null);
-        Main.pref.put("audio.menuinvisible", false);
+        Main.pref.putBoolean("audio.menuinvisible", false);
         PreferencesTestUtils.doTestPreferenceSettingAddGui(new AudioPreference.Factory(), null);
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreferenceTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreferenceTest.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreferenceTest.java	(revision 12842)
@@ -42,5 +42,5 @@
     public void testAddGui() {
         String fileUrl = new File(TestUtils.getTestDataRoot()+"__files/imagery/maps.xml").toURI().toString();
-        Main.pref.putCollection("imagery.layers.sites", Arrays.asList(fileUrl));
+        Main.pref.putList("imagery.layers.sites", Arrays.asList(fileUrl));
         PreferencesTestUtils.doTestPreferenceSettingAddGui(new ImageryPreference.Factory(), null);
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java	(revision 12842)
@@ -58,6 +58,6 @@
         assertFalse(sources.isEmpty());
         // Double traditional timeouts to avoid random problems
-        Main.pref.putInteger("socket.timeout.connect", 30);
-        Main.pref.putInteger("socket.timeout.read", 60);
+        Main.pref.putInt("socket.timeout.connect", 30);
+        Main.pref.putInt("socket.timeout.read", 60);
         Map<Object, Throwable> allErrors = new HashMap<>();
         Set<String> allMessages = new HashSet<>();
Index: trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java	(revision 12842)
@@ -52,6 +52,6 @@
         RemoteControl.start();
         disableCertificateValidation();
-        httpBase = "http://127.0.0.1:"+Main.pref.getInteger("remote.control.port", 8111);
-        httpsBase = "https://127.0.0.1:"+Main.pref.getInteger("remote.control.https.port", 8112);
+        httpBase = "http://127.0.0.1:"+Main.pref.getInt("remote.control.port", 8111);
+        httpsBase = "https://127.0.0.1:"+Main.pref.getInt("remote.control.https.port", 8112);
     }
 
Index: trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTestIT.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTestIT.java	(revision 12828)
+++ trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTestIT.java	(revision 12842)
@@ -148,9 +148,9 @@
         PluginDownloadTask pluginDownloadTask = new PluginDownloadTask(NullProgressMonitor.INSTANCE, plugins, null);
         // Increase default timeout to avoid random network errors on big jar files
-        int defTimeout = Main.pref.getInteger("socket.timeout.read", 30);
-        Main.pref.putInteger("socket.timeout.read", 2 * defTimeout);
+        int defTimeout = Main.pref.getInt("socket.timeout.read", 30);
+        Main.pref.putInt("socket.timeout.read", 2 * defTimeout);
         pluginDownloadTask.run();
         // Restore default timeout
-        Main.pref.putInteger("socket.timeout.read", defTimeout);
+        Main.pref.putInt("socket.timeout.read", defTimeout);
         assertTrue(pluginDownloadTask.getFailedPlugins().toString(), pluginDownloadTask.getFailedPlugins().isEmpty());
         assertEquals(plugins.size(), pluginDownloadTask.getDownloadedPlugins().size());
