From 171f8bb16daee0d61c464c739d962ffc605e257a Mon Sep 17 00:00:00 2001 From: Juuz <6596629+Juuxel@users.noreply.github.com> Date: Sat, 4 Oct 2025 23:34:24 +0300 Subject: [PATCH] Replace Commons IO NullOutputStream with custom impl Fixes #302. The class was backported from 1.12 where Commons IO is not used at all. --- .../loom/forge/ForgeSourcesService.java | 2 +- .../loom/forge/tool/ForgeToolExecutor.java | 2 +- .../loom/util/NullOutputStream.java | 30 +++++++++++++++++++ .../providers/forge/SrgProvider.java | 6 ++-- 4 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 src/main/java/dev/architectury/loom/util/NullOutputStream.java diff --git a/src/main/java/dev/architectury/loom/forge/ForgeSourcesService.java b/src/main/java/dev/architectury/loom/forge/ForgeSourcesService.java index 73852273..e4b5c697 100644 --- a/src/main/java/dev/architectury/loom/forge/ForgeSourcesService.java +++ b/src/main/java/dev/architectury/loom/forge/ForgeSourcesService.java @@ -16,8 +16,8 @@ import java.util.function.BiConsumer; import java.util.function.Predicate; import dev.architectury.loom.forge.tool.ForgeToolExecutor; +import dev.architectury.loom.util.NullOutputStream; import dev.architectury.loom.util.TempFiles; -import org.apache.commons.io.output.NullOutputStream; import org.gradle.api.Project; import org.gradle.api.file.ConfigurableFileCollection; import org.gradle.api.logging.Logger; diff --git a/src/main/java/dev/architectury/loom/forge/tool/ForgeToolExecutor.java b/src/main/java/dev/architectury/loom/forge/tool/ForgeToolExecutor.java index 7e699076..e464abe1 100644 --- a/src/main/java/dev/architectury/loom/forge/tool/ForgeToolExecutor.java +++ b/src/main/java/dev/architectury/loom/forge/tool/ForgeToolExecutor.java @@ -3,7 +3,7 @@ package dev.architectury.loom.forge.tool; import java.util.Collection; import java.util.List; -import org.apache.commons.io.output.NullOutputStream; +import dev.architectury.loom.util.NullOutputStream; import org.gradle.api.Project; import org.gradle.api.file.ConfigurableFileCollection; import org.gradle.api.logging.LogLevel; diff --git a/src/main/java/dev/architectury/loom/util/NullOutputStream.java b/src/main/java/dev/architectury/loom/util/NullOutputStream.java new file mode 100644 index 00000000..af751d86 --- /dev/null +++ b/src/main/java/dev/architectury/loom/util/NullOutputStream.java @@ -0,0 +1,30 @@ +package dev.architectury.loom.util; + +import java.io.OutputStream; + +public final class NullOutputStream extends OutputStream { + public static final NullOutputStream INSTANCE = new NullOutputStream(); + + private NullOutputStream() { + } + + @Override + public void write(int b) { + // no-op + } + + @Override + public void write(byte[] b) { + // no-op + } + + @Override + public void write(byte[] b, int off, int len) { + // no-op + } + + @Override + public void close() { + // no-op + } +} diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/SrgProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/SrgProvider.java index 2394ce19..2b77764c 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/SrgProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/SrgProvider.java @@ -35,7 +35,7 @@ import java.util.HashMap; import java.util.Map; import com.google.common.base.Stopwatch; -import org.apache.commons.io.output.NullOutputStream; +import dev.architectury.loom.util.NullOutputStream; import org.gradle.api.Project; import org.gradle.api.logging.LogLevel; import org.jetbrains.annotations.Nullable; @@ -88,8 +88,8 @@ public class SrgProvider extends DependencyProvider { PrintStream err = System.err; if (getProject().getGradle().getStartParameter().getLogLevel().compareTo(LogLevel.LIFECYCLE) >= 0) { - System.setOut(new PrintStream(NullOutputStream.NULL_OUTPUT_STREAM)); - System.setErr(new PrintStream(NullOutputStream.NULL_OUTPUT_STREAM)); + System.setOut(new PrintStream(NullOutputStream.INSTANCE)); + System.setErr(new PrintStream(NullOutputStream.INSTANCE)); } Files.deleteIfExists(mergedMojangRaw);