diff --git a/src/main/java/io/bioimage/modelrunner/bioimageio/download/DownloadTracker.java b/src/main/java/io/bioimage/modelrunner/bioimageio/download/DownloadTracker.java index 4d334a74..a0aa3cae 100644 --- a/src/main/java/io/bioimage/modelrunner/bioimageio/download/DownloadTracker.java +++ b/src/main/java/io/bioimage/modelrunner/bioimageio/download/DownloadTracker.java @@ -34,6 +34,7 @@ import java.util.stream.Collectors; import io.bioimage.modelrunner.engine.installation.EngineInstall; +import io.bioimage.modelrunner.versionmanagement.JarInfo; /** * Class that contains the methods to track the progress downloading files. @@ -136,6 +137,7 @@ private DownloadTracker(String folder, TwoParameterConsumer cons this.parentThread = Thread.currentThread(); this.folder = folder; sizeFiles = new LinkedHashMap(); + JarInfo jarInfo = JarInfo.getInstance(); for (String link : links) { String key = folder + File.separator + DownloadModel.getFileNameFromURLString(link); if (consumer.get().get(key + EngineInstall.NBYTES_SUFFIX) != null && consumer.get().get(key + EngineInstall.NBYTES_SUFFIX) != -1) { @@ -143,7 +145,7 @@ private DownloadTracker(String folder, TwoParameterConsumer cons continue; } try { - sizeFiles.put(key, DownloadModel.getFileSize(new URL(link))); + sizeFiles.put(key, (jarInfo.get(link) != null ? jarInfo.get(link) : DownloadModel.getFileSize(new URL(link)))); } catch (MalformedURLException e) { throw new IOException("The URL '" + link + "' cannot be found."); } diff --git a/src/main/java/io/bioimage/modelrunner/engine/installation/EngineInstall.java b/src/main/java/io/bioimage/modelrunner/engine/installation/EngineInstall.java index be88b6e4..4271e272 100644 --- a/src/main/java/io/bioimage/modelrunner/engine/installation/EngineInstall.java +++ b/src/main/java/io/bioimage/modelrunner/engine/installation/EngineInstall.java @@ -54,6 +54,7 @@ import io.bioimage.modelrunner.versionmanagement.AvailableEngines; import io.bioimage.modelrunner.versionmanagement.DeepLearningVersion; import io.bioimage.modelrunner.versionmanagement.InstalledEngines; +import io.bioimage.modelrunner.versionmanagement.JarInfo; /** * Class that manages the dl-modelrunner engines. @@ -596,13 +597,14 @@ public long getBasicDownloadTotalSize() throws InterruptedException { long totalSize = 0; for (Entry ee : missingEngineFolders.entrySet()) { try { + JarInfo jarInfo = JarInfo.getInstance(); long engineSize = 0; DeepLearningVersion dlVersion = DeepLearningVersion.fromFile(new File(ee.getValue())); for (String link : dlVersion.getJars()) { if (Thread.currentThread().isInterrupted()) throw new InterruptedException("Retrieval of download size interrupted."); String key = ee.getValue() + File.separator + DownloadModel.getFileNameFromURLString(link) + NBYTES_SUFFIX; - long val = DownloadModel.getFileSize(new URL(link)); + long val = jarInfo.get(link) != null ? jarInfo.get(link) : DownloadModel.getFileSize(new URL(link)); this.consumersMap.get(ee.getValue()).accept(key, (double) val); engineSize += val; } diff --git a/src/main/java/io/bioimage/modelrunner/versionmanagement/JarInfo.java b/src/main/java/io/bioimage/modelrunner/versionmanagement/JarInfo.java index e2184f88..7b1d3f17 100644 --- a/src/main/java/io/bioimage/modelrunner/versionmanagement/JarInfo.java +++ b/src/main/java/io/bioimage/modelrunner/versionmanagement/JarInfo.java @@ -39,7 +39,7 @@ public static JarInfo getInstance() throws IOException { * * @return Map containing the URL and their respective sizes */ - public Map getUrlData() { + public Map getAllData() { return urlData; } @@ -49,7 +49,7 @@ public Map getUrlData() { * @param url The URL to look up * @return The size associated with the URL, or null if not found */ - public Long getSizeForUrl(String url) { + public Long get(String url) { return urlData.get(url); }