diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/MinosoftSIT.kt b/src/integration-test/kotlin/de/bixilon/minosoft/MinosoftSIT.kt
index c63e483ab..3ab733811 100644
--- a/src/integration-test/kotlin/de/bixilon/minosoft/MinosoftSIT.kt
+++ b/src/integration-test/kotlin/de/bixilon/minosoft/MinosoftSIT.kt
@@ -13,19 +13,17 @@
package de.bixilon.minosoft
-import de.bixilon.kutil.latch.SimpleLatch
+import de.bixilon.kutil.concurrent.worker.task.TaskWorker
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.minosoft.assets.IntegratedAssets
-import de.bixilon.minosoft.assets.meta.MinosoftMeta
-import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
-import de.bixilon.minosoft.data.registries.fallback.FallbackRegistries
import de.bixilon.minosoft.data.registries.fallback.tags.FallbackTags
-import de.bixilon.minosoft.datafixer.DataFixer
-import de.bixilon.minosoft.protocol.versions.VersionLoader
+import de.bixilon.minosoft.main.BootTasks
+import de.bixilon.minosoft.main.MinosoftBoot
import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.test.IT
import de.bixilon.minosoft.test.ITUtil
import de.bixilon.minosoft.util.KUtil
+import de.bixilon.minosoft.util.KUtil.minusAssign
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType
@@ -56,11 +54,19 @@ internal object MinosoftSIT {
KUtil.initPlayClasses()
disableGC()
Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Setting up integration tests...." }
- initAssetsManager()
- DataFixer.load()
- loadVersionsJson()
- loadAssetsProperties()
- loadDefaultRegistries()
+
+ IntegratedAssets.DEFAULT.load()
+
+ val worker = TaskWorker()
+ MinosoftBoot.register(worker)
+ worker.minusAssign(BootTasks.PROFILES)
+ worker.minusAssign(BootTasks.LAN_SERVERS)
+ worker.minusAssign(BootTasks.MODS)
+ worker.minusAssign(BootTasks.CLI)
+ worker.work(MinosoftBoot.LATCH)
+ MinosoftBoot.LATCH.dec()
+ MinosoftBoot.LATCH.await()
+
loadPixlyzerData()
Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Integration tests setup successfully!" }
}
@@ -78,25 +84,6 @@ internal object MinosoftSIT {
}.start()
}
- fun initAssetsManager() {
- IntegratedAssets.DEFAULT.load()
- IntegratedAssets.OVERRIDE.load()
- }
-
- fun loadVersionsJson() {
- VersionLoader.load(SimpleLatch(0))
- }
-
- fun loadAssetsProperties() {
- AssetsVersionProperties.load(SimpleLatch(0))
- }
-
- fun loadDefaultRegistries() {
- FallbackTags.load()
- FallbackRegistries.load()
- MinosoftMeta.load()
- }
-
fun loadPixlyzerData() {
val (version, registries) = ITUtil.loadPixlyzerData(IT.TEST_VERSION_NAME)
IT.VERSION = version
diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/util/yggdrasil/YggdrasilUtilTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/util/yggdrasil/YggdrasilUtilTest.kt
index 41152a001..c344e1f9a 100644
--- a/src/integration-test/kotlin/de/bixilon/minosoft/util/yggdrasil/YggdrasilUtilTest.kt
+++ b/src/integration-test/kotlin/de/bixilon/minosoft/util/yggdrasil/YggdrasilUtilTest.kt
@@ -1,3 +1,16 @@
+/*
+ * Minosoft
+ * Copyright (C) 2020-2023 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
package de.bixilon.minosoft.util.yggdrasil
import org.testng.Assert.*
@@ -6,13 +19,6 @@ import org.testng.annotations.Test
@Test(groups = ["signature", "yggdrasil"])
class YggdrasilUtilTest {
-
- @Test(groups = ["signature", "yggdrasil"], priority = -1)
- fun load() {
- YggdrasilUtil.load()
- }
-
-
fun `simple skin from mineskin_org`() {
val texture = "ewogICJ0aW1lc3RhbXAiIDogMTY5MDQwNDM4NjczNywKICAicHJvZmlsZUlkIiA6ICI3ZGY4NmY1MWFjZmI0MjQzYTkzNDQ1OTAyZDEzYTc0MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJNclJpcHRpZGUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjAxNzk1YmZhNmY3YzdkY2E0ZTI2ZWZiMzg2NGFmN2Y2MzhkZTliY2I4MjVjY2QzMjZiN2ZlZGVhZmVlZGZlNSIKICAgIH0KICB9Cn0="
val signature = "MZrr6ClYhJoSAM67/zzdD3QhASIKcq5xAXVYJx50QY6QTNFH85h9hAD93fi17ncRzpGvHaktRCk8Jlc7RLhJunidrYZbApJ0ooYRiVMcKu6PY2GvI2/hHkfpMmmnhWUXmmIpcziWQCZAc5xx+5Seud+vvOp5+bvAM10Re1wsU+6lK8lIdSYej4Fy8LZqoX7NkCQjFeH4EVRFghhiZHZQZtBX1qqCiVe6IVqmYtCNYX7dER5VCjK9kye/WzRv41mV8U7PCyavhE0LdgDKK/uGkyAn62CZa0dvwNQ+adpPF+5uMh5UxCvs1E25cVGkOk2jWcUcQOIEDWRD4Jn2073LEYAiVKGKNzI92C7bWiaihIQg5P3Wo1lXS3PPfZ3fKvkgYf+Vju/y6zPcxkfbGngm8m39EaypGy71UJ7vj01w038NAUxEYIS0vZFB2lWDNFxwVAHN1uh831FzyyxBPQb5UaUfecbPq5RXeoquyd5Omy8oRWDvpaAIPsttvKFebxZox0sMBPn3GQWtmq8dNIAvmi2SPLROHl1VstmG9yfbPAza7Iq8Ape2siidl64M/hpFcYXBWssGMzPYjXVp+924XKx6bzImxnc8on8qOoyQFOxftEHjpkLNDvrxYSiqoK3TDNZToiTh6qClqxMkOkJZgOfOQjD41hbyzu7gWBxfIf4="
diff --git a/src/main/java/de/bixilon/minosoft/util/KUtil.kt b/src/main/java/de/bixilon/minosoft/util/KUtil.kt
index 4923b1b91..4bc97f7bc 100644
--- a/src/main/java/de/bixilon/minosoft/util/KUtil.kt
+++ b/src/main/java/de/bixilon/minosoft/util/KUtil.kt
@@ -29,6 +29,8 @@ import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.concurrent.pool.runnable.ForcePooledRunnable
import de.bixilon.kutil.concurrent.schedule.TaskScheduler
+import de.bixilon.kutil.concurrent.worker.task.TaskWorker
+import de.bixilon.kutil.concurrent.worker.task.WorkerTask
import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.primitive.DoubleUtil
import de.bixilon.kutil.primitive.DoubleUtil.matches
@@ -355,4 +357,9 @@ object KUtil {
stream.close()
println("Packet dumped to $path")
}
+
+ @Deprecated("kutil 1.25")
+ fun TaskWorker.minusAssign(identifier: Any) {
+ this::class.java.getDeclaredField("tasks").apply { isAccessible = true }.get(this).unsafeCast>().remove(identifier)
+ }
}