Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 14246)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 14247)
@@ -77,40 +77,7 @@
     }
 
-    /**
-     * Asynchronously launches the download task for a given bounding box.
-     * @param newLayer true, if the data is to be downloaded into a new layer. If false, the task
-     * selects one of the existing layers as download layer, preferably the active layer.
-     *
-     * @param downloadArea the area to download
-     * @param progressMonitor the progressMonitor
-     * @return the future representing the asynchronous task
-     * @deprecated Use {@link #download(DownloadParams, Bounds, ProgressMonitor)}
-     */
-    @Deprecated
-    public Future<?> download(boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {
-        return download(new BoundingBoxDownloader(downloadArea),
-                new DownloadParams().withNewLayer(newLayer), downloadArea, progressMonitor);
-    }
-
     @Override
     public Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) {
         return download(new BoundingBoxDownloader(downloadArea), settings, downloadArea, progressMonitor);
-    }
-
-    /**
-     * Asynchronously launches the download task for a given bounding box.
-     *
-     * @param reader the reader used to parse OSM data (see {@link OsmServerReader#parseOsm})
-     * @param newLayer newLayer true, if the data is to be downloaded into a new layer. If false, the task
-     * selects one of the existing layers as download layer, preferably the active layer.
-     * @param downloadArea the area to download
-     * @param progressMonitor the progressMonitor
-     * @return the future representing the asynchronous task
-     * @deprecated Use {@link #download(OsmServerReader, DownloadParams, Bounds, ProgressMonitor)}
-     */
-    @Deprecated
-    public Future<?> download(OsmServerReader reader, boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {
-        return download(new DownloadTask(new DownloadParams().withNewLayer(newLayer), reader, progressMonitor, zoomAfterDownload),
-                downloadArea);
     }
 
@@ -389,29 +356,4 @@
         /**
          * Constructs a new {@code DownloadTask}.
-         * @param newLayer if {@code true}, force download to a new layer
-         * @param reader OSM data reader
-         * @param progressMonitor progress monitor
-         * @deprecated Use {@code DownloadTask(DownloadParams, OsmServerReader, ProgressMonitor)}
-         */
-        @Deprecated
-        public DownloadTask(boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor) {
-            this(new DownloadParams().withNewLayer(newLayer), reader, progressMonitor);
-        }
-
-        /**
-         * Constructs a new {@code DownloadTask}.
-         * @param newLayer if {@code true}, force download to a new layer
-         * @param reader OSM data reader
-         * @param progressMonitor progress monitor
-         * @param zoomAfterDownload If true, the map view will zoom to download area after download
-         * @deprecated Use {@code DownloadTask(DownloadParams, OsmServerReader, ProgressMonitor, boolean)}
-         */
-        @Deprecated
-        public DownloadTask(boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor, boolean zoomAfterDownload) {
-            this(new DownloadParams().withNewLayer(newLayer), reader, progressMonitor, zoomAfterDownload);
-        }
-
-        /**
-         * Constructs a new {@code DownloadTask}.
          * @param settings download settings
          * @param reader OSM data reader
Index: unk/src/org/openstreetmap/josm/data/SelectionChangedListener.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/SelectionChangedListener.java	(revision 14246)
+++ 	(revision )
@@ -1,36 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.data;
-
-import java.util.Collection;
-
-import org.openstreetmap.josm.data.osm.DataSelectionListener;
-import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.data.osm.event.SelectionEventManager;
-
-/**
- * This is a listener for selection changes through the dataset's data. Whenever
- * a selection of any data member changes, the dataSet gets informed about this
- * and fires a selectionChanged event.
- *
- * Note that these events are not fired immediately but are inserted in the
- * Swing event queue and packed together. So only one selection changed event
- * is issued within a one message dispatch routine.
- *
- * @see DataSelectionListener For a more advanced listener class.
- * @see SelectionEventManager For managing your selection events.
- *
- * @author imi
- * @since     8 (creation)
- * @since 10600 (functional interface)
- */
-@FunctionalInterface
-public interface SelectionChangedListener {
-
-    /**
-     * Informs the listener that the selection in the dataset has changed.
-     * @param newSelection The new selection.
-     * @deprecated use {@link DataSelectionListener} instead
-     */
-    @Deprecated
-    void selectionChanged(Collection<? extends OsmPrimitive> newSelection);
-}
Index: /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 14246)
+++ /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 14247)
@@ -29,5 +29,4 @@
 import org.openstreetmap.josm.data.DataSource;
 import org.openstreetmap.josm.data.ProjectionBounds;
-import org.openstreetmap.josm.data.SelectionChangedListener;
 import org.openstreetmap.josm.data.conflict.ConflictCollection;
 import org.openstreetmap.josm.data.coor.EastNorth;
@@ -48,5 +47,4 @@
 import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent;
 import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent;
-import org.openstreetmap.josm.data.osm.event.SelectionEventManager;
 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent;
 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
@@ -178,5 +176,4 @@
         // the listener, projection change listeners are managed as WeakReferences.
         ProjectionRegistry.addProjectionChangeListener(this);
-        addSelectionListener((DataSelectionListener) e -> fireSelectionChange(e.getSelection()));
     }
 
@@ -541,52 +538,4 @@
     public void removeSelectionListener(DataSelectionListener listener) {
         selectionListeners.removeListener(listener);
-    }
-
-    /*---------------------------------------------------
-     *   OLD SELECTION HANDLING
-     *---------------------------------------------------*/
-
-    /**
-     * A list of listeners to selection changed events. The list is static, as listeners register
-     * themselves for any dataset selection changes that occur, regardless of the current active
-     * dataset. (However, the selection does only change in the active layer)
-     * @deprecated to be removed
-     */
-    @Deprecated
-    private static final Collection<SelectionChangedListener> selListeners = new CopyOnWriteArrayList<>();
-
-    /**
-     * Adds a new selection listener.
-     * @param listener The selection listener to add
-     * @see #addSelectionListener(DataSelectionListener)
-     * @see SelectionEventManager#removeSelectionListener(SelectionChangedListener)
-     * @deprecated Use {@link SelectionEventManager#addSelectionListener(DataSelectionListener)} instead
-     */
-    @Deprecated
-    public static void addSelectionListener(SelectionChangedListener listener) {
-        ((CopyOnWriteArrayList<SelectionChangedListener>) selListeners).addIfAbsent(listener);
-    }
-
-    /**
-     * Removes a selection listener.
-     * @param listener The selection listener to remove
-     * @see #removeSelectionListener(DataSelectionListener)
-     * @see SelectionEventManager#removeSelectionListener(SelectionChangedListener)
-     * @deprecated Use {@link SelectionEventManager#removeSelectionListener(DataSelectionListener)} instead
-     */
-    @Deprecated
-    public static void removeSelectionListener(SelectionChangedListener listener) {
-        selListeners.remove(listener);
-    }
-
-    /**
-     * @deprecated to be removed
-     * @param currentSelection current selection
-     */
-    @Deprecated
-    private static void fireSelectionChange(Collection<? extends OsmPrimitive> currentSelection) {
-        for (SelectionChangedListener l : selListeners) {
-            l.selectionChanged(currentSelection);
-        }
     }
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/SelectionEventManager.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/SelectionEventManager.java	(revision 14246)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/SelectionEventManager.java	(revision 14247)
@@ -9,9 +9,7 @@
 import java.util.stream.Stream;
 
-import org.openstreetmap.josm.data.SelectionChangedListener;
 import org.openstreetmap.josm.data.osm.DataIntegrityProblemException;
 import org.openstreetmap.josm.data.osm.DataSelectionListener;
 import org.openstreetmap.josm.data.osm.DataSet;
-import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.MainLayerManager;
@@ -46,39 +44,4 @@
     private interface ListenerInfo {
         void fire(SelectionChangeEvent event);
-    }
-
-    /**
-     * @deprecated to be removed
-     */
-    @Deprecated
-    private static class OldListenerInfo implements ListenerInfo {
-        private final SelectionChangedListener listener;
-
-        OldListenerInfo(SelectionChangedListener listener) {
-            this.listener = listener;
-        }
-
-        @Override
-        public void fire(SelectionChangeEvent event) {
-            listener.selectionChanged(event.getSelection());
-        }
-
-        @Override
-        public int hashCode() {
-            return Objects.hash(listener);
-        }
-
-        @Override
-        public boolean equals(Object o) {
-            if (this == o) return true;
-            if (o == null || getClass() != o.getClass()) return false;
-            OldListenerInfo that = (OldListenerInfo) o;
-            return Objects.equals(listener, that.listener);
-        }
-
-        @Override
-        public String toString() {
-            return "OldListenerInfo [listener=" + listener + ']';
-        }
     }
 
@@ -128,24 +91,4 @@
 
     /**
-     * Registers a new {@code SelectionChangedListener}.
-     *
-     * It is preferred to add a DataSelectionListener - that listener will receive more information about the event.
-     * @param listener listener to add
-     * @param fireMode Set this to IN_EDT_CONSOLIDATED if you want the event to be fired in the EDT thread.
-     *                 Set it to IMMEDIATELY if you want the event to fire in the thread that caused the selection update.
-     * @deprecated Use {@link #addSelectionListener(DataSelectionListener)} or {@link #addSelectionListenerForEdt(DataSelectionListener)}
-     */
-    @Deprecated
-    public void addSelectionListener(SelectionChangedListener listener, FireMode fireMode) {
-        if (fireMode == FireMode.IN_EDT) {
-            throw new UnsupportedOperationException("IN_EDT mode not supported, you probably want to use IN_EDT_CONSOLIDATED.");
-        } else if (fireMode == FireMode.IN_EDT_CONSOLIDATED) {
-            inEDTListeners.addIfAbsent(new OldListenerInfo(listener));
-        } else {
-            immedatelyListeners.addIfAbsent(new OldListenerInfo(listener));
-        }
-    }
-
-    /**
      * Adds a selection listener that gets notified for selections immediately.
      * @param listener The listener to add.
@@ -164,14 +107,4 @@
     public void addSelectionListenerForEdt(DataSelectionListener listener) {
         inEDTListeners.addIfAbsent(new DataListenerInfo(listener));
-    }
-
-    /**
-     * Unregisters a {@code SelectionChangedListener}.
-     * @param listener listener to remove
-     * @deprecated use {@link #removeSelectionListener(DataSelectionListener)}
-     */
-    @Deprecated
-    public void removeSelectionListener(SelectionChangedListener listener) {
-        remove(new OldListenerInfo(listener));
     }
 
Index: /trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 14246)
+++ /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 14247)
@@ -67,14 +67,6 @@
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.validation.SchemaFactory;
 
 import org.openstreetmap.josm.spi.preferences.Config;
-import org.w3c.dom.Document;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
 
 /**
@@ -1330,74 +1322,4 @@
         }
         return null;
-    }
-
-    /**
-     * Returns the W3C XML Schema factory implementation. Robust method dealing with ContextClassLoader problems.
-     * @return the W3C XML Schema factory implementation
-     * @deprecated Use {@link XmlUtils#newXmlSchemaFactory}
-     * @since 13715
-     */
-    @Deprecated
-    public static SchemaFactory newXmlSchemaFactory() {
-        return XmlUtils.newXmlSchemaFactory();
-    }
-
-    /**
-     * Returns a new secure DOM builder, supporting XML namespaces.
-     * @return a new secure DOM builder, supporting XML namespaces
-     * @throws ParserConfigurationException if a parser cannot be created which satisfies the requested configuration.
-     * @deprecated Use {@link XmlUtils#newSafeDOMBuilder}
-     * @since 10404
-     */
-    @Deprecated
-    public static DocumentBuilder newSafeDOMBuilder() throws ParserConfigurationException {
-        return XmlUtils.newSafeDOMBuilder();
-    }
-
-    /**
-     * Parse the content given {@link InputStream} as XML.
-     * This method uses a secure DOM builder, supporting XML namespaces.
-     *
-     * @param is The InputStream containing the content to be parsed.
-     * @return the result DOM document
-     * @throws ParserConfigurationException if a parser cannot be created which satisfies the requested configuration.
-     * @throws IOException if any IO errors occur.
-     * @throws SAXException for SAX errors.
-     * @deprecated Use {@link XmlUtils#parseSafeDOM}
-     * @since 10404
-     */
-    @Deprecated
-    public static Document parseSafeDOM(InputStream is) throws ParserConfigurationException, IOException, SAXException {
-        return XmlUtils.parseSafeDOM(is);
-    }
-
-    /**
-     * Returns a new secure SAX parser, supporting XML namespaces.
-     * @return a new secure SAX parser, supporting XML namespaces
-     * @throws ParserConfigurationException if a parser cannot be created which satisfies the requested configuration.
-     * @throws SAXException for SAX errors.
-     * @deprecated Use {@link XmlUtils#newSafeSAXParser}
-     * @since 8287
-     */
-    @Deprecated
-    public static SAXParser newSafeSAXParser() throws ParserConfigurationException, SAXException {
-        return XmlUtils.newSafeSAXParser();
-    }
-
-    /**
-     * Parse the content given {@link org.xml.sax.InputSource} as XML using the specified {@link org.xml.sax.helpers.DefaultHandler}.
-     * This method uses a secure SAX parser, supporting XML namespaces.
-     *
-     * @param is The InputSource containing the content to be parsed.
-     * @param dh The SAX DefaultHandler to use.
-     * @throws ParserConfigurationException if a parser cannot be created which satisfies the requested configuration.
-     * @throws SAXException for SAX errors.
-     * @throws IOException if any IO errors occur.
-     * @deprecated Use {@link XmlUtils#parseSafeSAX}
-     * @since 8347
-     */
-    @Deprecated
-    public static void parseSafeSAX(InputSource is, DefaultHandler dh) throws ParserConfigurationException, SAXException, IOException {
-        XmlUtils.parseSafeSAX(is, dh);
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/event/SelectionEventManagerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/event/SelectionEventManagerTest.java	(revision 14246)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/event/SelectionEventManagerTest.java	(revision 14247)
@@ -12,8 +12,6 @@
 import org.junit.Test;
 import org.openstreetmap.josm.command.CommandTest.CommandTestDataWithRelation;
-import org.openstreetmap.josm.data.SelectionChangedListener;
 import org.openstreetmap.josm.data.osm.DataSelectionListener;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.util.GuiHelper;
@@ -27,7 +25,6 @@
  * @since 12048
  */
-@SuppressWarnings("deprecation")
 public class SelectionEventManagerTest {
-    private final class SelectionListener implements SelectionChangedListener, DataSelectionListener {
+    private final class SelectionListener implements DataSelectionListener {
         private Collection<? extends OsmPrimitive> newSelection;
         private final String name;
@@ -35,9 +32,4 @@
         SelectionListener(String name) {
             this.name = name;
-        }
-
-        @Override
-        public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
-            this.newSelection = newSelection;
         }
 
@@ -65,14 +57,10 @@
         assertEquals(testData1.layer, MainApplication.getLayerManager().getEditLayer());
 
-        SelectionListener listener1 = new SelectionListener("IMMEDIATELY");
-        SelectionListener listener2 = new SelectionListener("IN_EDT_CONSOLIDATED");
         SelectionListener listener3 = new SelectionListener("normal");
         SelectionListener listener4 = new SelectionListener("edt");
         SelectionEventManager instance = SelectionEventManager.getInstance();
-        instance.addSelectionListener(listener1, FireMode.IMMEDIATELY);
-        instance.addSelectionListener(listener2, FireMode.IN_EDT_CONSOLIDATED);
         instance.addSelectionListener(listener3);
         instance.addSelectionListenerForEdt(listener4);
-        List<SelectionListener> listeners = Arrays.asList(listener1, listener2, listener3, listener4);
+        List<SelectionListener> listeners = Arrays.asList(listener3, listener4);
         assertSelectionEquals(listeners, null);
 
@@ -99,8 +87,6 @@
 
         // removal
-        instance.removeSelectionListener((SelectionChangedListener) listener1);
-        instance.removeSelectionListener((SelectionChangedListener) listener2);
-        instance.removeSelectionListener((DataSelectionListener) listener3);
-        instance.removeSelectionListener((DataSelectionListener) listener4);
+        instance.removeSelectionListener(listener3);
+        instance.removeSelectionListener(listener4);
 
         // no event triggered now
