Remove remaining Guava usages

This commit is contained in:
Juuz
2025-10-01 01:27:27 +03:00
parent d0ec9525bb
commit 044eb9161f
8 changed files with 36 additions and 22 deletions

View File

@@ -73,6 +73,12 @@ configurations.configureEach {
}
}
// Arch: Prevent compiling against Guava.
// The dependency is still leaked from DFU, but it shouldn't be used to keep up with upstream standards.
configurations.named('compileClasspath') {
exclude group: 'com.google.guava'
}
sourceSets {
commonDecompiler {
java {

View File

@@ -49,7 +49,6 @@ import java.util.jar.Manifest;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import com.google.common.base.Preconditions;
import de.oceanlabs.mcp.mcinjector.adaptors.ParameterAnnotationFixer;
import dev.architectury.loom.accesstransformer.AccessTransformerService;
import dev.architectury.loom.forge.CoreModClassRemapper;
@@ -84,6 +83,7 @@ import net.fabricmc.loom.LoomGradleExtension;
import net.fabricmc.loom.build.IntermediaryNamespaces;
import net.fabricmc.loom.configuration.providers.mappings.TinyMappingsService;
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
import net.fabricmc.loom.util.Check;
import net.fabricmc.loom.util.Constants;
import net.fabricmc.loom.util.FileSystemUtil;
import net.fabricmc.loom.util.TinyRemapperHelper;
@@ -614,7 +614,7 @@ public class MinecraftPatchedProvider {
try (FileSystemUtil.Delegate delegate = FileSystemUtil.getJarFileSystem(target, false)) {
Path manifestPath = delegate.get().getPath("META-INF/MANIFEST.MF");
Preconditions.checkArgument(Files.exists(manifestPath), "META-INF/MANIFEST.MF does not exist in patched srg jar!");
Check.require(Files.exists(manifestPath), "META-INF/MANIFEST.MF does not exist in patched srg jar!");
Manifest manifest = new Manifest();
if (Files.exists(manifestPath)) {

View File

@@ -35,7 +35,6 @@ import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
import com.google.common.base.Preconditions;
import dev.architectury.loom.forge.dependency.SrgProvider;
import dev.architectury.loom.util.collection.CollectionUtil;
import dev.architectury.loom.util.collection.Multimap;
@@ -43,6 +42,7 @@ import org.jetbrains.annotations.Nullable;
import net.fabricmc.loom.api.mappings.layered.MappingContext;
import net.fabricmc.loom.api.mappings.layered.MappingsNamespace;
import net.fabricmc.loom.util.Check;
import net.fabricmc.mappingio.FlatMappingVisitor;
import net.fabricmc.mappingio.MappingReader;
import net.fabricmc.mappingio.MappingVisitor;
@@ -58,8 +58,6 @@ import net.fabricmc.mappingio.tree.MemoryMappingTree;
/**
* Merges a Tiny file with a new namespace.
*
* @author Juuz
*/
public final class ForgeMappingsMerger {
private static final List<String> INPUT_NAMESPACES = List.of("official", "intermediary", "named");
@@ -74,7 +72,7 @@ public final class ForgeMappingsMerger {
private ForgeMappingsMerger(MemoryMappingTree newNs, MemoryMappingTree src, @Nullable ExtraMappings extraMappings, boolean lenient) throws IOException {
this.newNs = newNs;
Preconditions.checkArgument(this.newNs.getDstNamespaces().size() == 1, "New namespace must have exactly one destination namespace");
Check.require(this.newNs.getDstNamespaces().size() == 1, "New namespace must have exactly one destination namespace");
this.src = src;
this.output = new MemoryMappingTree();
this.flatOutput = new RegularAsFlatMappingVisitor(output);

View File

@@ -39,7 +39,6 @@ import java.util.NoSuchElementException;
import java.util.Set;
import java.util.SortedSet;
import com.google.common.base.Suppliers;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import dev.architectury.loom.forge.dependency.ForgeProvider;
@@ -65,6 +64,7 @@ import net.fabricmc.loom.LoomGradleExtension;
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
import net.fabricmc.loom.util.Checksum;
import net.fabricmc.loom.util.Constants;
import net.fabricmc.loom.util.Lazy;
import net.fabricmc.loom.util.gradle.GradleUtils;
import net.fabricmc.loom.util.service.Service;
@@ -289,7 +289,7 @@ public final class McpExecutorBuilder {
@Override
public Provider<FileCollection> getMinecraftLibraries() {
return project().provider(Suppliers.memoize(() -> {
return project().provider(Lazy.of(() -> {
project.getLogger().lifecycle(":downloading minecraft libraries, this may take a while...");
// (1.2) minecraftRuntimeLibraries contains the compile-time libraries as well.
final Set<File> files = project.getConfigurations().getByName(Constants.Configurations.MINECRAFT_RUNTIME_LIBRARIES).resolve();

View File

@@ -30,7 +30,6 @@ import java.io.UncheckedIOException;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import com.google.common.base.Suppliers;
import dev.architectury.loom.mcpconfig.McpConfigFunction;
import org.gradle.api.file.RegularFileProperty;
import org.gradle.api.provider.Property;
@@ -38,6 +37,7 @@ import org.gradle.api.provider.Provider;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.InputFile;
import net.fabricmc.loom.util.Lazy;
import net.fabricmc.loom.util.service.Service;
import net.fabricmc.loom.util.service.ServiceFactory;
import net.fabricmc.loom.util.service.ServiceType;
@@ -59,7 +59,7 @@ public final class FunctionLogic extends StepLogic<FunctionLogic.Options> {
public static Provider<Options> createOptions(SetupContext context, McpConfigFunction function) {
return TYPE.create(context.project(), options -> {
options.getFunction().set(function);
final Provider<File> jar = context.project().provider(Suppliers.memoize(() -> {
final Provider<File> jar = context.project().provider(Lazy.of(() -> {
try {
return function.download(context).toFile();
} catch (IOException e) {

View File

@@ -25,11 +25,10 @@
package dev.architectury.loom.util;
import java.util.Locale;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.google.common.base.Strings;
import com.google.common.collect.Ordering;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -58,14 +57,18 @@ public record Version(int major, int minor, int micro, int patch, @Nullable Stri
}
int major = Integer.parseInt(matcher.group(1));
int minor = !Strings.isNullOrEmpty(matcher.group(2)) ? Integer.parseInt(matcher.group(2)) : 0;
int micro = !Strings.isNullOrEmpty(matcher.group(3)) ? Integer.parseInt(matcher.group(3)) : 0;
int patch = !Strings.isNullOrEmpty(matcher.group(4)) ? Integer.parseInt(matcher.group(4)) : 0;
int minor = !isNullOrEmpty(matcher.group(2)) ? Integer.parseInt(matcher.group(2)) : 0;
int micro = !isNullOrEmpty(matcher.group(3)) ? Integer.parseInt(matcher.group(3)) : 0;
int patch = !isNullOrEmpty(matcher.group(4)) ? Integer.parseInt(matcher.group(4)) : 0;
String qualifier = matcher.group(5);
return new Version(major, minor, micro, patch, qualifier == null ? null : qualifier.toLowerCase(Locale.ROOT));
}
private static boolean isNullOrEmpty(@Nullable String s) {
return s == null || s.isEmpty();
}
public Version asBaseVersion() {
return new Version(this.major, this.minor, this.micro, this.patch, null);
}
@@ -80,9 +83,16 @@ public record Version(int major, int minor, int micro, int patch, @Nullable Stri
return this.micro - other.micro;
} else if (this.patch != other.patch) {
return this.patch - other.patch;
} else if (!Objects.equals(this.qualifier, other.qualifier)) {
if (this.qualifier == null) {
return 1;
} else if (other.qualifier == null) {
return -1;
}
return this.qualifier.compareTo(other.qualifier);
} else {
return Ordering.natural().nullsLast()
.compare(this.qualifier, other.qualifier);
return 0;
}
}
}

View File

@@ -36,7 +36,6 @@ import java.util.Objects;
import java.util.Set;
import java.util.function.Consumer;
import com.google.common.base.Suppliers;
import org.gradle.api.Action;
import org.gradle.api.NamedDomainObjectContainer;
import org.gradle.api.NamedDomainObjectList;
@@ -82,6 +81,7 @@ import net.fabricmc.loom.configuration.providers.minecraft.MinecraftMetadataProv
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftSourceSets;
import net.fabricmc.loom.task.GenerateSourcesTask;
import net.fabricmc.loom.util.DeprecationHelper;
import net.fabricmc.loom.util.Lazy;
import net.fabricmc.loom.util.MirrorUtil;
import net.fabricmc.loom.util.ModPlatform;
import net.fabricmc.loom.util.fmj.FabricModJson;
@@ -217,7 +217,7 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA
interfaceInjection(interfaceInjection -> {
interfaceInjection.getEnableDependencyInterfaceInjection().convention(true).finalizeValueOnRead();
});
this.platform = project.provider(Suppliers.memoize(() -> {
this.platform = project.provider(Lazy.of(() -> {
Object platformProperty = GradleUtils.getProperty(project, PLATFORM_PROPERTY);
if (platformProperty != null) {

View File

@@ -35,7 +35,6 @@ import java.util.function.Supplier;
import javax.inject.Inject;
import com.google.common.base.Suppliers;
import dev.architectury.loom.forge.dependency.DependencyProviders;
import dev.architectury.loom.forge.dependency.ForgeRunsProvider;
import org.gradle.api.Project;
@@ -63,6 +62,7 @@ import net.fabricmc.loom.configuration.providers.minecraft.mapped.IntermediaryMi
import net.fabricmc.loom.configuration.providers.minecraft.mapped.MojangMappedMinecraftProvider;
import net.fabricmc.loom.configuration.providers.minecraft.mapped.NamedMinecraftProvider;
import net.fabricmc.loom.configuration.providers.minecraft.mapped.SrgMinecraftProvider;
import net.fabricmc.loom.util.Lazy;
import net.fabricmc.loom.util.ModPlatform;
import net.fabricmc.loom.util.download.Download;
import net.fabricmc.loom.util.download.DownloadBuilder;
@@ -109,8 +109,8 @@ public abstract class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl
this.mixinApExtension = project.getObjects().newInstance(MixinExtensionImpl.class, project);
this.loomFiles = files;
this.unmappedMods = project.files();
this.forgeExtension = Suppliers.memoize(() -> isForge() ? project.getObjects().newInstance(ForgeExtensionImpl.class, project, this) : null);
this.neoForgeExtension = Suppliers.memoize(() -> isNeoForge() ? project.getObjects().newInstance(NeoForgeExtensionImpl.class, project) : null);
this.forgeExtension = Lazy.of(() -> isForge() ? project.getObjects().newInstance(ForgeExtensionImpl.class, project, this) : null);
this.neoForgeExtension = Lazy.of(() -> isNeoForge() ? project.getObjects().newInstance(NeoForgeExtensionImpl.class, project) : null);
// Setup the default intermediate mappings provider.
setIntermediateMappingsProvider(IntermediaryMappingsProvider.class, provider -> {