Index: applications/editors/josm/plugins/canvec_helper/build.xml
===================================================================
--- applications/editors/josm/plugins/canvec_helper/build.xml	(revision 30493)
+++ applications/editors/josm/plugins/canvec_helper/build.xml	(revision 30495)
@@ -4,5 +4,5 @@
     <property name="commit.message" value="JOSM/Canvec_helper: fixed a crash caused by osm directory being renamed to OSM"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
+    <property name="plugin.main.version" value="7248"/>
     
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/canvec_helper/src/org/openstreetmap/josm/plugins/canvec_helper/CanVecTile.java
===================================================================
--- applications/editors/josm/plugins/canvec_helper/src/org/openstreetmap/josm/plugins/canvec_helper/CanVecTile.java	(revision 30493)
+++ applications/editors/josm/plugins/canvec_helper/src/org/openstreetmap/josm/plugins/canvec_helper/CanVecTile.java	(revision 30495)
@@ -13,5 +13,5 @@
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.io.IllegalDataException;
-import org.openstreetmap.josm.io.MirroredInputStream;
+import org.openstreetmap.josm.io.CachedFile;
 import java.awt.Graphics2D;
 import java.awt.Polygon;
@@ -183,6 +183,5 @@
 		File download_path = new File(layer.plugin_self.getPluginDir() + File.separator);
 		download_path.mkdir();
-		MirroredInputStream tile_zip;
-		tile_zip = new MirroredInputStream(getDownloadUrl(),download_path.toString());
+		CachedFile tile_zip = new CachedFile(getDownloadUrl()).setDestDir(download_path.toString());
 		return new ZipFile(tile_zip.getFile());
 	}
Index: applications/editors/josm/plugins/canvec_helper/src/org/openstreetmap/josm/plugins/canvec_helper/CanvecLayer.java
===================================================================
--- applications/editors/josm/plugins/canvec_helper/src/org/openstreetmap/josm/plugins/canvec_helper/CanvecLayer.java	(revision 30493)
+++ applications/editors/josm/plugins/canvec_helper/src/org/openstreetmap/josm/plugins/canvec_helper/CanvecLayer.java	(revision 30495)
@@ -9,4 +9,5 @@
 import java.awt.Toolkit;
 import java.io.BufferedReader;
+import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.IOException;
@@ -27,5 +28,5 @@
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.io.MirroredInputStream;
+import org.openstreetmap.josm.io.CachedFile;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
@@ -51,5 +52,5 @@
 			long start = System.currentTimeMillis();
 			Pattern p = Pattern.compile("(\\d\\d\\d)([A-Z]\\d\\d).*");
-			MirroredInputStream index = new MirroredInputStream("http://ftp2.cits.rncan.gc.ca/OSM/pub/ZippedOsm.txt");
+			InputStream index = new CachedFile("http://ftp2.cits.rncan.gc.ca/OSM/pub/ZippedOsm.txt").getInputStream();
 			BufferedReader br = new BufferedReader(new InputStreamReader(index));
 			String line;
Index: applications/editors/josm/plugins/imagery-xml-bounds/build.xml
===================================================================
--- applications/editors/josm/plugins/imagery-xml-bounds/build.xml	(revision 30493)
+++ applications/editors/josm/plugins/imagery-xml-bounds/build.xml	(revision 30495)
@@ -4,5 +4,5 @@
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
+    <property name="plugin.main.version" value="7248"/>
 	
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/io/ValidatingImageryReader.java
===================================================================
--- applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/io/ValidatingImageryReader.java	(revision 30493)
+++ applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/io/ValidatingImageryReader.java	(revision 30495)
@@ -9,5 +9,5 @@
 import javax.xml.validation.SchemaFactory;
 
-import org.openstreetmap.josm.io.MirroredInputStream;
+import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.io.imagery.ImageryReader;
 import org.openstreetmap.josm.plugins.imageryxmlbounds.XmlBoundsConstants;
@@ -34,5 +34,5 @@
 	public static void validate(String source) throws SAXException, IOException {
         SchemaFactory factory =  SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-        Schema schema = factory.newSchema(new StreamSource(new MirroredInputStream(XML_SCHEMA)));
+        Schema schema = factory.newSchema(new StreamSource(new CachedFile(XML_SCHEMA).getInputStream()));
         schema.newValidator().validate(new StreamSource(source));
 	}
Index: applications/editors/josm/plugins/mirrored_download/build.xml
===================================================================
--- applications/editors/josm/plugins/mirrored_download/build.xml	(revision 30493)
+++ applications/editors/josm/plugins/mirrored_download/build.xml	(revision 30495)
@@ -5,5 +5,5 @@
     <property name="commit.message" value=""/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
+    <property name="plugin.main.version" value="7248"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/mirrored_download/src/mirrored_download/UrlSelectionDialog.java
===================================================================
--- applications/editors/josm/plugins/mirrored_download/src/mirrored_download/UrlSelectionDialog.java	(revision 30493)
+++ applications/editors/josm/plugins/mirrored_download/src/mirrored_download/UrlSelectionDialog.java	(revision 30495)
@@ -25,5 +25,5 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.io.MirroredInputStream;
+import org.openstreetmap.josm.io.CachedFile;
 
 public class UrlSelectionDialog
@@ -106,5 +106,5 @@
     Collection<String> urls = new ArrayList<String>();
     try (
-      InputStream in = new MirroredInputStream(src, 24*60*60);
+      InputStream in = new CachedFile(src).setMaxAge(24*60*60).getInputStream();
       BufferedReader reader = new BufferedReader(new InputStreamReader(in))
     ) {
Index: applications/editors/josm/plugins/pbf/build.xml
===================================================================
--- applications/editors/josm/plugins/pbf/build.xml	(revision 30493)
+++ applications/editors/josm/plugins/pbf/build.xml	(revision 30495)
@@ -3,5 +3,5 @@
 
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
+    <property name="plugin.main.version" value="7248"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/pbf/src/org/openstreetmap/josm/plugins/pbf/io/PbfImporter.java
===================================================================
--- applications/editors/josm/plugins/pbf/src/org/openstreetmap/josm/plugins/pbf/io/PbfImporter.java	(revision 30493)
+++ applications/editors/josm/plugins/pbf/src/org/openstreetmap/josm/plugins/pbf/io/PbfImporter.java	(revision 30495)
@@ -9,5 +9,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.IllegalDataException;
-import org.openstreetmap.josm.io.MirroredInputStream;
+import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.io.OsmImporter;
 import org.openstreetmap.josm.plugins.pbf.PbfConstants;
@@ -30,5 +30,5 @@
 
 	protected DataSet parseDataSet(final String source) throws IOException, SAXException, IllegalDataException {
-        return parseDataSet(new MirroredInputStream(source), NullProgressMonitor.INSTANCE);
+        return parseDataSet(new CachedFile(source).getInputStream(), NullProgressMonitor.INSTANCE);
 	}
 }
Index: applications/editors/josm/plugins/poly/build.xml
===================================================================
--- applications/editors/josm/plugins/poly/build.xml	(revision 30493)
+++ applications/editors/josm/plugins/poly/build.xml	(revision 30495)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
+    <property name="plugin.main.version" value="7248"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/poly/src/poly/PolyImporter.java
===================================================================
--- applications/editors/josm/plugins/poly/src/poly/PolyImporter.java	(revision 30493)
+++ applications/editors/josm/plugins/poly/src/poly/PolyImporter.java	(revision 30495)
@@ -20,5 +20,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.IllegalDataException;
-import org.openstreetmap.josm.io.MirroredInputStream;
+import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.io.OsmImporter;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
@@ -36,5 +36,5 @@
 
     protected DataSet parseDataSet( final String source ) throws IOException, SAXException, IllegalDataException {
-        return parseDataSet(new MirroredInputStream(source), NullProgressMonitor.INSTANCE);
+        return parseDataSet(new CachedFile(source).getInputStream(), NullProgressMonitor.INSTANCE);
     }
 
Index: applications/editors/josm/plugins/roadsigns/build.xml
===================================================================
--- applications/editors/josm/plugins/roadsigns/build.xml	(revision 30493)
+++ applications/editors/josm/plugins/roadsigns/build.xml	(revision 30495)
@@ -4,5 +4,5 @@
     <property name="commit.message" value="preset maintenance (Fahrradstraße)"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
+    <property name="plugin.main.version" value="7248"/>
 
     <!--
Index: applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignsPlugin.java
===================================================================
--- applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignsPlugin.java	(revision 30493)
+++ applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignsPlugin.java	(revision 30495)
@@ -30,5 +30,5 @@
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.dialogs.properties.PropertiesDialog;
-import org.openstreetmap.josm.io.MirroredInputStream;
+import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
@@ -244,5 +244,5 @@
         InputStream in = null;
         if (source.startsWith("http://") || source.startsWith("https://") || source.startsWith("ftp://")) {
-            in = new MirroredInputStream(source);
+            in = new CachedFile(source).getInputStream();
         } else if (source.startsWith("file:")) {
             in = new URL(source).openStream();
