mirror of
https://github.com/BlockWorldGroup/Ledger-Databases.git
synced 2025-08-18 04:10:15 +08:00
Improve performance
This commit is contained in:
parent
a767a78fc1
commit
92f9a172d1
12
build.gradle
12
build.gradle
@ -34,10 +34,12 @@ dependencies {
|
|||||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
||||||
|
|
||||||
// Yes this has to be capitalised
|
// Yes this has to be capitalised
|
||||||
modImplementation "com.github.quiltservertools:ledger:1.2.0"
|
modImplementation "com.github.quiltservertools:Ledger:1.2.5"
|
||||||
|
|
||||||
modImplementation "net.fabricmc:fabric-language-kotlin:1.7.0+kotlin.1.6.0"
|
modImplementation "net.fabricmc:fabric-language-kotlin:1.7.0+kotlin.1.6.0"
|
||||||
|
|
||||||
|
implementation(include("com.zaxxer:HikariCP:5.0.1"))
|
||||||
|
|
||||||
// H2
|
// H2
|
||||||
implementation(include("com.h2database:h2:1.4.200"))
|
implementation(include("com.h2database:h2:1.4.200"))
|
||||||
|
|
||||||
@ -79,7 +81,13 @@ jar {
|
|||||||
publishing {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
mavenJava(MavenPublication) {
|
mavenJava(MavenPublication) {
|
||||||
from(components["java"])
|
// add all the jars that should be included when publishing to maven
|
||||||
|
artifact(remapJar) {
|
||||||
|
builtBy remapJar
|
||||||
|
}
|
||||||
|
artifact(sourcesJar) {
|
||||||
|
builtBy remapSourcesJar
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,12 +3,12 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://fabricmc.net/versions.html
|
# check these on https://fabricmc.net/versions.html
|
||||||
minecraft_version=1.18.1
|
minecraft_version=1.18.2
|
||||||
yarn_mappings=1.18.1+build.2
|
yarn_mappings=1.18.2+build.3
|
||||||
loader_version=0.12.11
|
loader_version=0.12.5
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.1.1
|
mod_version = 1.0.2
|
||||||
maven_group = net.quiltservertools
|
maven_group = net.quiltservertools
|
||||||
archives_base_name = ledger-databases
|
archives_base_name = ledger-databases
|
||||||
|
|
||||||
|
@ -0,0 +1,50 @@
|
|||||||
|
package net.quiltservertools.ledger.databases
|
||||||
|
|
||||||
|
import com.github.quiltservertools.ledger.Ledger
|
||||||
|
import com.github.quiltservertools.ledger.api.DatabaseExtension
|
||||||
|
import com.github.quiltservertools.libs.com.uchuhimo.konf.ConfigSpec
|
||||||
|
import com.zaxxer.hikari.HikariConfig
|
||||||
|
import com.zaxxer.hikari.HikariDataSource
|
||||||
|
import net.minecraft.util.Identifier
|
||||||
|
import org.h2.jdbcx.JdbcDataSource
|
||||||
|
import org.sqlite.SQLiteDataSource
|
||||||
|
import java.nio.file.Path
|
||||||
|
import javax.sql.DataSource
|
||||||
|
import kotlin.io.path.pathString
|
||||||
|
|
||||||
|
class LedgerDatabaseExtension : DatabaseExtension {
|
||||||
|
override fun getConfigSpecs(): List<ConfigSpec> = listOf(DatabaseExtensionSpec)
|
||||||
|
|
||||||
|
override fun getDataSource(fileLocation: Path): DataSource {
|
||||||
|
return when (Ledger.config[DatabaseExtensionSpec.database]) {
|
||||||
|
Databases.SQLITE -> SQLiteDataSource().apply {
|
||||||
|
url = "jdbc:sqlite:${fileLocation.resolve("ledger.sqlite").pathString}"
|
||||||
|
}
|
||||||
|
|
||||||
|
Databases.H2 -> JdbcDataSource().apply {
|
||||||
|
setURL("jdbc:h2:${fileLocation.resolve("ledger.h2").pathString};MODE=MySQL")
|
||||||
|
}
|
||||||
|
|
||||||
|
Databases.MYSQL -> HikariDataSource(HikariConfig().apply {
|
||||||
|
jdbcUrl = "jdbc:mysql://${Ledger.config[DatabaseExtensionSpec.url]}?rewriteBatchedStatements=true"
|
||||||
|
username = Ledger.config[DatabaseExtensionSpec.userName]
|
||||||
|
password = Ledger.config[DatabaseExtensionSpec.password]
|
||||||
|
maximumPoolSize = Ledger.config[DatabaseExtensionSpec.maxPoolSize]
|
||||||
|
})
|
||||||
|
|
||||||
|
Databases.POSTGRESQL -> HikariDataSource(HikariConfig().apply {
|
||||||
|
jdbcUrl = "jdbc:postgresql://${Ledger.config[DatabaseExtensionSpec.url]}?rewriteBatchedStatements=true"
|
||||||
|
username = Ledger.config[DatabaseExtensionSpec.userName]
|
||||||
|
password = Ledger.config[DatabaseExtensionSpec.password]
|
||||||
|
maximumPoolSize = Ledger.config[DatabaseExtensionSpec.maxPoolSize]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getIdentifier(): Identifier = when (Ledger.config[DatabaseExtensionSpec.database]) {
|
||||||
|
Databases.MYSQL -> Ledger.identifier("mysql_extension")
|
||||||
|
Databases.H2 -> Ledger.identifier("h2_extension")
|
||||||
|
Databases.POSTGRESQL -> Ledger.identifier("postgresql_extension")
|
||||||
|
else -> Ledger.identifier(Ledger.DEFAULT_DATABASE)
|
||||||
|
}
|
||||||
|
}
|
@ -7,5 +7,5 @@ object DatabaseExtensionSpec : ConfigSpec("database_extensions") {
|
|||||||
val userName by optional("root", "username")
|
val userName by optional("root", "username")
|
||||||
val password by optional("", "password")
|
val password by optional("", "password")
|
||||||
val url by optional("localhost", "url")
|
val url by optional("localhost", "url")
|
||||||
val properties by optional(listOf<String>(), "properties")
|
val maxPoolSize by optional(10, "maxPoolSize")
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user