Index: applications/editors/josm/plugins/imagery_offset_db/build.xml
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/build.xml	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/build.xml	(revision 33774)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Imagery Offset Database"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12643"/>
+    <property name="plugin.main.version" value="12840"/>
     <property name="plugin.canloadatruntime" value="true"/>
 
Index: applications/editors/josm/plugins/imagery_offset_db/src/iodb/DeprecateOffsetAction.java
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/src/iodb/DeprecateOffsetAction.java	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/src/iodb/DeprecateOffsetAction.java	(revision 33774)
@@ -12,5 +12,5 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.gui.JosmUserIdentityManager;
+import org.openstreetmap.josm.data.UserIdentityManager;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -79,5 +79,5 @@
      */
     public static void deprecateOffset(ImageryOffsetBase offset, QuerySuccessListener listener) {
-        String userName = JosmUserIdentityManager.getInstance().getUserName();
+        String userName = UserIdentityManager.getInstance().getUserName();
         if (userName == null) {
             JOptionPane.showMessageDialog(Main.parent, tr("To store imagery offsets you must be a registered OSM user."),
Index: applications/editors/josm/plugins/imagery_offset_db/src/iodb/GetImageryOffsetAction.java
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/src/iodb/GetImageryOffsetAction.java	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/src/iodb/GetImageryOffsetAction.java	(revision 33774)
@@ -18,6 +18,6 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
-import org.openstreetmap.josm.data.coor.CoordinateFormat;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -59,5 +59,5 @@
         Projection proj = MainApplication.getMap().mapView.getProjection();
         LatLon center = proj.eastNorth2latlon(MainApplication.getMap().mapView.getCenter());
-        AbstractTileSourceLayer layer = ImageryOffsetTools.getTopImageryLayer();
+        AbstractTileSourceLayer<?> layer = ImageryOffsetTools.getTopImageryLayer();
         String imagery = ImageryOffsetTools.getImageryID(layer);
         if (imagery == null)
@@ -77,5 +77,5 @@
         if (!MainApplication.isDisplayingMapView() || !MainApplication.getMap().isVisible())
             state = false;
-        AbstractTileSourceLayer layer = ImageryOffsetTools.getTopImageryLayer();
+        AbstractTileSourceLayer<?> layer = ImageryOffsetTools.getTopImageryLayer();
         if (ImageryOffsetTools.getImageryID(layer) == null)
             state = false;
@@ -131,11 +131,11 @@
          * @param imagery Imagery ID for the layer.
          */
-        DownloadOffsetsTask(LatLon center, AbstractTileSourceLayer layer, String imagery) {
+        DownloadOffsetsTask(LatLon center, AbstractTileSourceLayer<?> layer, String imagery) {
             super(null, tr("Loading imagery offsets..."));
             try {
-                String query = "get?lat=" + center.latToString(CoordinateFormat.DECIMAL_DEGREES)
-                + "&lon=" + center.lonToString(CoordinateFormat.DECIMAL_DEGREES)
+                String query = "get?lat=" + DecimalDegreesCoordinateFormat.INSTANCE.latToString(center)
+                + "&lon=" + DecimalDegreesCoordinateFormat.INSTANCE.lonToString(center)
                 + "&imagery=" + URLEncoder.encode(imagery, "UTF8");
-                int radius = Main.pref.getInteger("iodb.radius", -1);
+                int radius = Main.pref.getInt("iodb.radius", -1);
                 if (radius > 0)
                     query = query + "&radius=" + radius;
Index: applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffset.java
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffset.java	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffset.java	(revision 33774)
@@ -4,6 +4,6 @@
 import java.util.Map;
 
-import org.openstreetmap.josm.data.coor.CoordinateFormat;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
 
 /**
@@ -55,6 +55,6 @@
         super.putServerParams(map);
         map.put("imagery", imagery);
-        map.put("imlat", imageryPos.latToString(CoordinateFormat.DECIMAL_DEGREES));
-        map.put("imlon", imageryPos.lonToString(CoordinateFormat.DECIMAL_DEGREES));
+        map.put("imlat", DecimalDegreesCoordinateFormat.INSTANCE.latToString(imageryPos));
+        map.put("imlon", DecimalDegreesCoordinateFormat.INSTANCE.lonToString(imageryPos));
         if (minZoom > 0)
             map.put("minzoom", String.valueOf(minZoom));
Index: applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetBase.java
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetBase.java	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetBase.java	(revision 33774)
@@ -5,6 +5,6 @@
 import java.util.Map;
 
-import org.openstreetmap.josm.data.coor.CoordinateFormat;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
 
 /**
@@ -107,6 +107,6 @@
 
     public void putServerParams(Map<String, String> map) {
-        map.put("lat", position.latToString(CoordinateFormat.DECIMAL_DEGREES));
-        map.put("lon", position.lonToString(CoordinateFormat.DECIMAL_DEGREES));
+        map.put("lat", DecimalDegreesCoordinateFormat.INSTANCE.latToString(position));
+        map.put("lon", DecimalDegreesCoordinateFormat.INSTANCE.lonToString(position));
         map.put("author", author);
         map.put("description", description);
Index: applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetPlugin.java
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetPlugin.java	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetPlugin.java	(revision 33774)
@@ -5,6 +5,6 @@
 
 import java.awt.event.KeyEvent;
-import java.util.Collection;
 import java.util.LinkedList;
+import java.util.List;
 
 import javax.swing.JMenu;
@@ -50,11 +50,11 @@
                 // an ugly hack to add this plugin to the toolbar
                 if (Main.pref.getBoolean("iodb.modify.toolbar", true)) {
-                    Collection<String> toolbar = new LinkedList<>(ToolbarPreferences.getToolString());
+                    List<String> toolbar = new LinkedList<>(ToolbarPreferences.getToolString());
                     if (!toolbar.contains("getoffset")) {
                         toolbar.add("getoffset");
-                        Main.pref.putCollection("toolbar", toolbar);
+                        Main.pref.putList("toolbar", toolbar);
                         MainApplication.getToolbar().refreshToolbarControl();
                     }
-                    Main.pref.put("iodb.modify.toolbar", false);
+                    Main.pref.putBoolean("iodb.modify.toolbar", false);
                 }
     }
Index: applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetWatcher.java
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetWatcher.java	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/src/iodb/ImageryOffsetWatcher.java	(revision 33774)
@@ -3,5 +3,4 @@
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -116,5 +115,5 @@
             return;
         }
-        AbstractTileSourceLayer layer = ImageryOffsetTools.getTopImageryLayer();
+        AbstractTileSourceLayer<?> layer = ImageryOffsetTools.getTopImageryLayer();
         if (layer == null) {
             setOffsetGood(true);
@@ -158,5 +157,5 @@
      */
     public void markGood() {
-        AbstractTileSourceLayer layer = ImageryOffsetTools.getTopImageryLayer();
+        AbstractTileSourceLayer<?> layer = ImageryOffsetTools.getTopImageryLayer();
         if (layer != null) {
             TileSourceDisplaySettings displaySettings = layer.getDisplaySettings();
@@ -205,5 +204,5 @@
         Layer newLayer = e.getAddedLayer();
         if (newLayer instanceof AbstractTileSourceLayer)
-            loadLayerOffset((AbstractTileSourceLayer) newLayer);
+            loadLayerOffset((AbstractTileSourceLayer<?>) newLayer);
         checkOffset();
     }
@@ -223,9 +222,9 @@
      * projections: nobody uses them anyway.
      */
-    private void storeLayerOffset(AbstractTileSourceLayer layer) {
+    private void storeLayerOffset(AbstractTileSourceLayer<?> layer) {
         String id = ImageryOffsetTools.getImageryID(layer);
         if (!Main.pref.getBoolean("iodb.remember.offsets", true) || id == null)
             return;
-        Collection<String> offsets = new LinkedList<>(Main.pref.getCollection("iodb.stored.offsets"));
+        List<String> offsets = new LinkedList<>(Main.pref.getList("iodb.stored.offsets"));
         for (Iterator<String> iter = offsets.iterator(); iter.hasNext();) {
             String[] offset = iter.next().split(":");
@@ -236,5 +235,5 @@
         offsets.add(id + ":" + center.lat() + ":" + center.lon() + ":" +
                 layer.getDisplaySettings().getDx() + ":" + layer.getDisplaySettings().getDy());
-        Main.pref.putCollection("iodb.stored.offsets", offsets);
+        Main.pref.putList("iodb.stored.offsets", offsets);
     }
 
@@ -242,9 +241,9 @@
      * Loads the current imagery layer offset from preferences.
      */
-    private void loadLayerOffset(AbstractTileSourceLayer layer) {
+    private void loadLayerOffset(AbstractTileSourceLayer<?> layer) {
         String id = ImageryOffsetTools.getImageryID(layer);
         if (!Main.pref.getBoolean("iodb.remember.offsets", true) || id == null)
             return;
-        Collection<String> offsets = Main.pref.getCollection("iodb.stored.offsets");
+        List<String> offsets = Main.pref.getList("iodb.stored.offsets");
         for (String offset : offsets) {
             String[] parts = offset.split(":");
Index: applications/editors/josm/plugins/imagery_offset_db/src/iodb/OffsetDialog.java
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/src/iodb/OffsetDialog.java	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/src/iodb/OffsetDialog.java	(revision 33774)
@@ -37,5 +37,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
-import org.openstreetmap.josm.gui.JosmUserIdentityManager;
+import org.openstreetmap.josm.data.UserIdentityManager;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapView;
@@ -57,5 +57,5 @@
     protected static final String PREF_CALIBRATION = "iodb.show.calibration";
     protected static final String PREF_DEPRECATED = "iodb.show.deprecated";
-    private static final int MAX_OFFSETS = Main.pref.getInteger("iodb.max.offsets", 4);
+    private static final int MAX_OFFSETS = Main.pref.getInt("iodb.max.offsets", 4);
 
     /**
@@ -97,5 +97,5 @@
             @Override
             public void actionPerformed(ActionEvent e) {
-                Main.pref.put(PREF_CALIBRATION, calibrationBox.isSelected());
+                Main.pref.putBoolean(PREF_CALIBRATION, calibrationBox.isSelected());
                 updateButtonPanel();
             }
@@ -106,5 +106,5 @@
             @Override
             public void actionPerformed(ActionEvent e) {
-                Main.pref.put(PREF_DEPRECATED, deprecatedBox.isSelected());
+                Main.pref.putBoolean(PREF_DEPRECATED, deprecatedBox.isSelected());
                 updateButtonPanel();
             }
@@ -271,5 +271,5 @@
     public void applyOffset() {
         if (selectedOffset instanceof ImageryOffset) {
-            AbstractTileSourceLayer layer = ImageryOffsetTools.getTopImageryLayer();
+            AbstractTileSourceLayer<?> layer = ImageryOffsetTools.getTopImageryLayer();
             ImageryOffsetTools.applyLayerOffset(layer, (ImageryOffset) selectedOffset);
             ImageryOffsetWatcher.getInstance().markGood();
@@ -281,5 +281,5 @@
                                 + "by downloading GPS tracks and comparing them and OSM data to the imagery."),
                         ImageryOffsetTools.DIALOG_TITLE, JOptionPane.INFORMATION_MESSAGE);
-                Main.pref.put("iodb.offset.message", true);
+                Main.pref.putBoolean("iodb.offset.message", true);
             }
         } else if (selectedOffset instanceof CalibrationObject) {
@@ -292,5 +292,5 @@
                                 + "find the corresponding feature on the imagery layer and move it accordingly."),
                         ImageryOffsetTools.DIALOG_TITLE, JOptionPane.INFORMATION_MESSAGE);
-                Main.pref.put("iodb.calibration.message", true);
+                Main.pref.putBoolean("iodb.calibration.message", true);
             }
         }
@@ -315,5 +315,5 @@
         @Override
         public void queryPassed() {
-            offset.setDeprecated(new Date(), JosmUserIdentityManager.getInstance().getUserName(), "");
+            offset.setDeprecated(new Date(), UserIdentityManager.getInstance().getUserName(), "");
             updateButtonPanel();
         }
Index: applications/editors/josm/plugins/imagery_offset_db/src/iodb/StoreImageryOffsetAction.java
===================================================================
--- applications/editors/josm/plugins/imagery_offset_db/src/iodb/StoreImageryOffsetAction.java	(revision 33773)
+++ applications/editors/josm/plugins/imagery_offset_db/src/iodb/StoreImageryOffsetAction.java	(revision 33774)
@@ -15,9 +15,9 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.data.UserIdentityManager;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.gui.JosmUserIdentityManager;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer;
@@ -54,9 +54,9 @@
             return;
 
-        AbstractTileSourceLayer layer = ImageryOffsetTools.getTopImageryLayer();
+        AbstractTileSourceLayer<?> layer = ImageryOffsetTools.getTopImageryLayer();
         if (layer == null)
             return;
 
-        String userName = JosmUserIdentityManager.getInstance().getUserName();
+        String userName = UserIdentityManager.getInstance().getUserName();
         if (userName == null || userName.length() == 0) {
             JOptionPane.showMessageDialog(Main.parent,
