From aae97feeca255e10528d470b19baf402a6aaf2bc Mon Sep 17 00:00:00 2001 From: JFronny Date: Mon, 3 Jun 2024 10:32:46 +0200 Subject: [PATCH] chore: move threaded mds into its own package --- .../launcher/system/mds/ModsDirScanner.java | 5 +++-- .../system/mds/{ => threaded}/FileScanTask.java | 2 +- .../system/mds/{ => threaded}/MdsMod.java | 2 +- .../mds/{ => threaded}/NamedThreadFactory.java | 2 +- .../mds/{ => threaded}/ProtoInstance.java | 3 ++- .../ThreadedMds.java} | 17 +++++++++-------- 6 files changed, 17 insertions(+), 14 deletions(-) rename launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/{ => threaded}/FileScanTask.java (98%) rename launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/{ => threaded}/MdsMod.java (98%) rename launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/{ => threaded}/NamedThreadFactory.java (93%) rename launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/{ => threaded}/ProtoInstance.java (58%) rename launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/{ModsDirScannerImpl.java => threaded/ThreadedMds.java} (89%) diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ModsDirScanner.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ModsDirScanner.java index 0a1a106..b624252 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ModsDirScanner.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ModsDirScanner.java @@ -3,6 +3,7 @@ package io.gitlab.jfronny.inceptum.launcher.system.mds; import io.gitlab.jfronny.inceptum.launcher.model.inceptum.InstanceMeta; import io.gitlab.jfronny.inceptum.launcher.system.instance.Mod; import io.gitlab.jfronny.inceptum.launcher.system.mds.noop.NoopMds; +import io.gitlab.jfronny.inceptum.launcher.system.mds.threaded.ThreadedMds; import io.gitlab.jfronny.inceptum.launcher.util.GameVersionParser; import java.io.Closeable; @@ -14,12 +15,12 @@ import java.util.function.BiConsumer; public interface ModsDirScanner extends Closeable { static ModsDirScanner get(Path modsDir, InstanceMeta meta) throws IOException { - if (Files.exists(modsDir)) return ModsDirScannerImpl.get(modsDir, meta); + if (Files.exists(modsDir)) return ThreadedMds.get(modsDir, meta); return new NoopMds(GameVersionParser.getGameVersion(meta.gameVersion)); } static void closeAll() { - ModsDirScannerImpl.closeAll(); + ThreadedMds.closeAll(); } boolean isComplete(); diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/FileScanTask.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/FileScanTask.java similarity index 98% rename from launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/FileScanTask.java rename to launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/FileScanTask.java index c266e28..c4c692a 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/FileScanTask.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/FileScanTask.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.inceptum.launcher.system.mds; +package io.gitlab.jfronny.inceptum.launcher.system.mds.threaded; import io.gitlab.jfronny.gson.JsonParseException; import io.gitlab.jfronny.inceptum.common.Utils; diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/MdsMod.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/MdsMod.java similarity index 98% rename from launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/MdsMod.java rename to launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/MdsMod.java index 028d1d5..faaadab 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/MdsMod.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/MdsMod.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.inceptum.launcher.system.mds; +package io.gitlab.jfronny.inceptum.launcher.system.mds.threaded; import io.gitlab.jfronny.inceptum.launcher.model.fabric.FabricModJson; import io.gitlab.jfronny.inceptum.launcher.model.inceptum.GC_ModMeta; diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/NamedThreadFactory.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/NamedThreadFactory.java similarity index 93% rename from launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/NamedThreadFactory.java rename to launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/NamedThreadFactory.java index 1372d21..1a43f02 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/NamedThreadFactory.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/NamedThreadFactory.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.inceptum.launcher.system.mds; +package io.gitlab.jfronny.inceptum.launcher.system.mds.threaded; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ProtoInstance.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/ProtoInstance.java similarity index 58% rename from launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ProtoInstance.java rename to launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/ProtoInstance.java index cdb30a4..421108b 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ProtoInstance.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/ProtoInstance.java @@ -1,6 +1,7 @@ -package io.gitlab.jfronny.inceptum.launcher.system.mds; +package io.gitlab.jfronny.inceptum.launcher.system.mds.threaded; import io.gitlab.jfronny.inceptum.launcher.model.inceptum.InstanceMeta; +import io.gitlab.jfronny.inceptum.launcher.system.mds.ModsDirScanner; import java.nio.file.Path; diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ModsDirScannerImpl.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/ThreadedMds.java similarity index 89% rename from launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ModsDirScannerImpl.java rename to launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/ThreadedMds.java index edf7823..5d2d2bb 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/ModsDirScannerImpl.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/threaded/ThreadedMds.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.inceptum.launcher.system.mds; +package io.gitlab.jfronny.inceptum.launcher.system.mds.threaded; import io.gitlab.jfronny.commons.io.JFiles; import io.gitlab.jfronny.commons.ref.R; @@ -6,6 +6,7 @@ import io.gitlab.jfronny.inceptum.common.Utils; import io.gitlab.jfronny.inceptum.launcher.model.inceptum.InstanceMeta; import io.gitlab.jfronny.inceptum.launcher.system.instance.Mod; import io.gitlab.jfronny.inceptum.launcher.system.instance.ModPath; +import io.gitlab.jfronny.inceptum.launcher.system.mds.ModsDirScanner; import io.gitlab.jfronny.inceptum.launcher.system.mds.noop.NoopMod; import io.gitlab.jfronny.inceptum.launcher.util.GameVersionParser; @@ -17,8 +18,8 @@ import java.util.function.BiConsumer; import static java.nio.file.StandardWatchEventKinds.*; -class ModsDirScannerImpl implements ModsDirScanner { - private static final Map SCANNERS = new HashMap<>(); +public class ThreadedMds implements ModsDirScanner { + private static final Map SCANNERS = new HashMap<>(); private static final ExecutorService POOL = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors(), new NamedThreadFactory("mds")); private final Map descriptions = new HashMap<>(); private final Set scannedPaths = new HashSet<>(); @@ -27,20 +28,20 @@ class ModsDirScannerImpl implements ModsDirScanner { private final WatchService service; private boolean disposed = false; - private ModsDirScannerImpl(Path modsDir, InstanceMeta instance) throws IOException { + private ThreadedMds(Path modsDir, InstanceMeta instance) throws IOException { this.instance = new ProtoInstance(modsDir, this, instance); this.th = new Thread(this::scanTaskInternal, "mds-" + modsDir.getParent().getFileName()); this.service = FileSystems.getDefault().newWatchService(); modsDir.register(service, ENTRY_MODIFY, ENTRY_CREATE, ENTRY_DELETE); } - protected static ModsDirScannerImpl get(Path modsDir, InstanceMeta instance) throws IOException { + public static ThreadedMds get(Path modsDir, InstanceMeta instance) throws IOException { if (SCANNERS.containsKey(modsDir)) { - ModsDirScannerImpl mds = SCANNERS.get(modsDir); + ThreadedMds mds = SCANNERS.get(modsDir); if (mds.instance.meta().equals(instance)) return mds; mds.close(); } - ModsDirScannerImpl mds = new ModsDirScannerImpl(modsDir, instance); + ThreadedMds mds = new ThreadedMds(modsDir, instance); SCANNERS.put(modsDir, mds); return mds; } @@ -150,7 +151,7 @@ class ModsDirScannerImpl implements ModsDirScanner { } public static void closeAll() { - for (ModsDirScannerImpl value : SCANNERS.values().toArray(ModsDirScannerImpl[]::new)) { + for (ThreadedMds value : SCANNERS.values().toArray(ThreadedMds[]::new)) { try { value.close(); } catch (IOException e) {