From 6f870ffaab0fedbd42ff1a75f886661fa060d75e Mon Sep 17 00:00:00 2001 From: Siphalor Date: Mon, 3 Nov 2025 02:43:49 +0100 Subject: [PATCH] feat(minecraft): Setup logging for older Minecraft/Log4J2 versions --- .gitmodules | 3 +++ tweed5-minecraft/bundle/build.gradle.kts | 31 ++++++++++++++++++++++++ tweed5-minecraft/vendor/commons-logging | 1 + 3 files changed, 35 insertions(+) create mode 100644 .gitmodules create mode 160000 tweed5-minecraft/vendor/commons-logging diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..70cde16 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tweed5-minecraft/vendor/commons-logging"] + path = tweed5-minecraft/vendor/commons-logging + url = https://gitea.siphalor.de/Siphalor/tweed5-commons-logging.git diff --git a/tweed5-minecraft/bundle/build.gradle.kts b/tweed5-minecraft/bundle/build.gradle.kts index 319d93b..b9bb099 100644 --- a/tweed5-minecraft/bundle/build.gradle.kts +++ b/tweed5-minecraft/bundle/build.gradle.kts @@ -12,6 +12,12 @@ val bundledSourcesConfiguration = configurations.resolvable("bundledSources") { } } +configurations.implementation { + exclude(group = "commons-logging", module = "commons-logging") +} + +val vendoredCommonsLogging = project.layout.settingsDirectory.file("vendor/commons-logging").asFile + dependencies { implementation("de.siphalor.tweed5:tweed5-core") implementation("de.siphalor.tweed5:tweed5-attributes-extension") @@ -22,10 +28,35 @@ dependencies { implementation("de.siphalor.tweed5:tweed5-weaver-pojo-presets-extension") implementation("de.siphalor.tweed5:tweed5-weaver-pojo-serde-extension") implementation("de.siphalor.tweed5:tweed5-weaver-pojo-validation-extension") + + implementation( + objects.fileCollection().apply { + from( + vendoredCommonsLogging.resolve("target") + .listFiles { it.name.endsWith("SNAPSHOT.jar") } + ) + builtBy("compileCommonsLogging") + } + ) +} + +tasks.register("compileCommonsLogging") { + inputs.file(vendoredCommonsLogging.resolve("pom.xml")) + inputs.dir(vendoredCommonsLogging.resolve("src")) + outputs.dir(vendoredCommonsLogging.resolve("target")) + commandLine("mvn", "package", "-DskipTests") + workingDir(vendoredCommonsLogging) } tasks.shadowJar { relocate("org.objectweb.asm", "de.siphalor.tweed5.shadowed.org.objectweb.asm") + + relocate("META-INF", "META-INF/tweed5-vendored/commons-logging") { + include("META-INF/*.txt") + } + exclude("META-INF/maven/**") + // Remove some obsolete classes + exclude("org/apache/commons/logging/impl/WeakHashtable*") } tasks.register("sourcesJar") { diff --git a/tweed5-minecraft/vendor/commons-logging b/tweed5-minecraft/vendor/commons-logging new file mode 160000 index 0000000..79058f2 --- /dev/null +++ b/tweed5-minecraft/vendor/commons-logging @@ -0,0 +1 @@ +Subproject commit 79058f2a497dd8da16a7259a74364519a09bc68c