Index: /trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 13542)
+++ /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 13543)
@@ -5,5 +5,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.Color;
 import java.io.File;
 import java.io.IOException;
@@ -28,5 +27,4 @@
 import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
-import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Stream;
@@ -49,6 +47,4 @@
 import org.openstreetmap.josm.spi.preferences.StringSetting;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
-import org.openstreetmap.josm.tools.ColorHelper;
-import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.ListenerList;
 import org.openstreetmap.josm.tools.Logging;
@@ -116,11 +112,4 @@
 
     /**
-     * Maps color keys to human readable color name
-     * @deprecated (since 12987) no longer supported
-     */
-    @Deprecated
-    protected final SortedMap<String, String> colornames = new TreeMap<>();
-
-    /**
      * Indicates whether {@link #init(boolean)} completed successfully.
      * Used to decide whether to write backup preference file in {@link #save()}
@@ -153,10 +142,8 @@
      * @since 12634
      */
-    @SuppressWarnings("deprecation")
     public Preferences(Preferences pref) {
         this(pref.dirs);
         settingsMap.putAll(pref.settingsMap);
         defaultsMap.putAll(pref.defaultsMap);
-        colornames.putAll(pref.colornames);
     }
 
@@ -440,30 +427,4 @@
                         }
                     });
-        }
-        return all;
-    }
-
-    /**
-     * Gets all known colors (preferences starting with the color prefix)
-     * @return All colors
-     * @deprecated (since 12987) replaced by {@link #getAllNamedColors()}
-     */
-    @Deprecated
-    public synchronized Map<String, String> getAllColors() {
-        final Map<String, String> all = new TreeMap<>();
-        for (final Entry<String, Setting<?>> e : defaultsMap.entrySet()) {
-            if (e.getKey().startsWith(COLOR_PREFIX) && e.getValue() instanceof StringSetting) {
-                if (e.getKey().startsWith(COLOR_PREFIX+"layer."))
-                    continue; // do not add unchanged layer colors
-                StringSetting d = (StringSetting) e.getValue();
-                if (d.getValue() != null) {
-                    all.put(e.getKey().substring(6), d.getValue());
-                }
-            }
-        }
-        for (final Entry<String, Setting<?>> e : settingsMap.entrySet()) {
-            if (e.getKey().startsWith(COLOR_PREFIX) && (e.getValue() instanceof StringSetting)) {
-                all.put(e.getKey().substring(6), ((StringSetting) e.getValue()).getValue());
-            }
         }
         return all;
@@ -701,70 +662,4 @@
 
     /**
-     * only for preferences
-     * @param o color key
-     * @return translated color name
-     * @deprecated (since 12987) no longer supported
-     */
-    @Deprecated
-    public synchronized String getColorName(String o) {
-        Matcher m = COLOR_LAYER_PATTERN.matcher(o);
-        if (m.matches()) {
-            return tr("Layer: {0}", tr(I18n.escape(m.group(1))));
-        }
-        String fullKey = COLOR_PREFIX + o;
-        if (colornames.containsKey(fullKey)) {
-            String name = colornames.get(fullKey);
-            Matcher m2 = COLOR_MAPPAINT_PATTERN.matcher(name);
-            if (m2.matches()) {
-                return tr("Paint style {0}: {1}", tr(I18n.escape(m2.group(1))), tr(I18n.escape(m2.group(2))));
-            } else {
-                return tr(I18n.escape(colornames.get(fullKey)));
-            }
-        } else {
-            return fullKey;
-        }
-    }
-
-    /**
-     * Registers a color name conversion for the global color registry.
-     * @param colKey The key
-     * @param colName The name of the color.
-     * @since 10824
-     * @deprecated (since 12987) no longer supported
-     */
-    @Deprecated
-    public void registerColor(String colKey, String colName) {
-        if (!colKey.equals(colName)) {
-            colornames.put(colKey, colName);
-        }
-    }
-
-    /**
-     * Gets the default color that was registered with the preference
-     * @param colKey The color name
-     * @return The color
-     * @deprecated (since 12989) no longer supported
-     */
-    @Deprecated
-    public synchronized Color getDefaultColor(String colKey) {
-        StringSetting col = Utils.cast(defaultsMap.get(COLOR_PREFIX+colKey), StringSetting.class);
-        String colStr = col == null ? null : col.getValue();
-        return colStr == null || colStr.isEmpty() ? null : ColorHelper.html2color(colStr);
-    }
-
-    /**
-     * Stores a color
-     * @param colKey The color name
-     * @param val The color
-     * @return true if the setting was modified
-     * @see NamedColorProperty#put(Color)
-     * @deprecated (since 12987) no longer supported (see {@link NamedColorProperty})
-     */
-    @Deprecated
-    public synchronized boolean putColor(String colKey, Color val) {
-        return put(COLOR_PREFIX+colKey, val != null ? ColorHelper.color2html(val, true) : null);
-    }
-
-    /**
      * Set a value for a certain setting. The changed setting is saved to the preference file immediately.
      * Due to caching mechanisms on modern operating systems and hardware, this shouldn't be a performance problem.
Index: unk/src/org/openstreetmap/josm/data/preferences/ColorProperty.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/preferences/ColorProperty.java	(revision 13542)
+++ 	(revision )
@@ -1,94 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.data.preferences;
-
-import java.awt.Color;
-import java.util.Locale;
-
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.tools.CheckParameterUtil;
-import org.openstreetmap.josm.tools.ColorHelper;
-
-/**
- * A property containing a {@link Color} value.
- * @since 5464
- * @deprecated (since 12987) replaced by {@link NamedColorProperty}
- */
-@Deprecated
-public class ColorProperty extends AbstractToStringProperty<Color> {
-
-    private final String name;
-
-    /**
-     * Constructs a new {@code ColorProperty}.
-     * @param colName The color name
-     * @param defaultValue The default value as HTML string
-     */
-    public ColorProperty(String colName, String defaultValue) {
-        this(colName, ColorHelper.html2color(defaultValue));
-    }
-
-    /**
-     * Constructs a new {@code ColorProperty}.
-     * @param colName The color name
-     * @param defaultValue The default value
-     */
-    public ColorProperty(String colName, Color defaultValue) {
-        super(getColorKey(colName), defaultValue);
-        CheckParameterUtil.ensureParameterNotNull(defaultValue, "defaultValue");
-        this.name = colName;
-        Main.pref.registerColor(getColorKey(colName), colName);
-    }
-
-    @Override
-    public Color get() {
-        // Removing this implementation breaks binary compatibility due to the way generics work
-        return super.get();
-    }
-
-    @Override
-    public boolean put(Color value) {
-        // Removing this implementation breaks binary compatibility due to the way generics work
-        return super.put(value);
-    }
-
-    @Override
-    protected Color fromString(String string) {
-        return ColorHelper.html2color(string);
-    }
-
-    @Override
-    protected String toString(Color t) {
-        return ColorHelper.color2html(t, true);
-    }
-
-    /**
-     * Gets a color of which the value can be set.
-     * @param colorName the name of the color.
-     * @return The child property that inherits this value if it is not set.
-     */
-    public AbstractToStringProperty<Color> getChildColor(String colorName) {
-        return getChildProperty(getColorKey(colorName));
-    }
-
-    /**
-     * Gets the name this color was registered with.
-     * @return The name.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Replies the color key used in JOSM preferences for this property.
-     * @param colName The color name
-     * @return The color key for this property
-     */
-    public static String getColorKey(String colName) {
-        return colName == null ? null : "color." + colName.toLowerCase(Locale.ENGLISH).replaceAll("[^a-z0-9]+", ".");
-    }
-
-    @Override
-    public String toString() {
-        return "ColorProperty [name=" + name + ", defaultValue=" + getDefaultValue() + "]";
-    }
-}
Index: /trunk/src/org/openstreetmap/josm/data/preferences/NamedColorProperty.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/preferences/NamedColorProperty.java	(revision 13542)
+++ /trunk/src/org/openstreetmap/josm/data/preferences/NamedColorProperty.java	(revision 13543)
@@ -5,5 +5,5 @@
 import java.util.Arrays;
 import java.util.List;
-import java.util.Optional;
+
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ColorHelper;
@@ -72,21 +72,5 @@
             return ColorHelper.html2color(data.get(0));
         }
-        return Optional.ofNullable(migrate()).orElse(defaultValue);
-    }
-
-    /**
-     * migrate to new color preferences scheme - remove 4 months after {@link ColorProperty} is removed.
-     * @return the old preferences value
-     */
-    private Color migrate() {
-        String s = getPreferences().get(getOldColorKey(), null);
-        if (s != null) {
-            Color c = ColorHelper.html2color(s);
-            if (c != null) {
-                put(c);
-                return c;
-            }
-        }
-        return null;
+        return defaultValue;
     }
 
@@ -95,25 +79,4 @@
         get(); // trigger migration
         return super.isSet();
-    }
-
-    @SuppressWarnings("deprecation")
-    private String getOldColorKey() {
-        switch (category) {
-            case COLOR_CATEGORY_MAPPAINT:
-                return ColorProperty.getColorKey("mappaint." + (source == null ? "MapCSS" : source) + "." + name);
-            case COLOR_CATEGORY_LAYER:
-            {
-                String k = "layer " + (source == null ? "" : source);
-                return ColorProperty.getColorKey(k);
-            }
-            default:
-            {
-                String k = name;
-                if (source != null) {
-                    k = source + "." + k;
-                }
-                return ColorProperty.getColorKey(k);
-            }
-        }
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 13542)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 13543)
@@ -13,5 +13,4 @@
 import java.text.Collator;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -38,6 +37,6 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
 import org.openstreetmap.josm.data.preferences.ColorInfo;
-import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
 import org.openstreetmap.josm.data.preferences.NamedColorProperty;
 import org.openstreetmap.josm.data.validation.Severity;
@@ -265,18 +264,4 @@
 
     /**
-     * Set the colors to be shown in the preference table. This method creates a table model if
-     * none exists and overwrites all existing values.
-     * @param colorMap the map holding the colors
-     * (key = color id (without prefixes, so only <code>background</code>; not <code>color.background</code>),
-     * value = html representation of the color.
-     * @deprecated (since 12987) replaced by {@link #setColors(java.util.Map)}
-     */
-    @Deprecated
-    public void setColorModel(Map<String, String> colorMap) {
-        setColors(colorMap.entrySet().stream().collect(Collectors.toMap(e->e.getKey(), e->
-            new ColorInfo(NamedColorProperty.COLOR_CATEGORY_GENERAL, null, e.getKey(), ColorHelper.html2color(e.getValue()), null))));
-    }
-
-    /**
      * Returns a map with the colors in the table (key = preference key, value = color info).
      * @return a map holding the colors.
@@ -284,18 +269,4 @@
     public Map<String, ColorInfo> getColors() {
         return tableModel.getData().stream().collect(Collectors.toMap(e -> e.key, e -> e.info));
-    }
-
-    /**
-     * Returns a map with the colors in the table (key = color name without prefix, value = html color code).
-     * @return a map holding the colors.
-     * @deprecated replaced by {@link #getColors()}
-     */
-    @Deprecated
-    public Map<String, String> getColorModel() {
-        Map<String, String> colorMap = new HashMap<>();
-        for (ColorEntry e : tableModel.getData()) {
-            colorMap.put(e.key, ColorHelper.color2html(e.getDisplayColor()));
-        }
-        return colorMap;
     }
 
