mirror of
https://github.com/BrenBroZAYT/gameyfin.git
synced 2026-06-13 16:40:01 +00:00
005a1611ce
* chore: bump version to v2.3.3-preview * Optimiziation for multiple parallel and long-running downloads (#838) * Add missing Content-Type header to downloads (#837) Conditionally add Content-Length header to downloads Only calculate fileSize if file is not a directory in DirectDownloadPlugin * Update dependencies, add Google Guava * Refactor and optimize download bandwidth monitoring and throttling * Update .jar layer extraction command in Dockerfile * Fix Dockerfile.ubuntu * Furhter performance and tracking improvements for downloads * Fix tests * Update HeroUI version * Encode filenames in Content-Disposition header according to RFC 6266 (#841) * Encode filenames in Content-Disposition header with UTF-8 according to RFC 6266 * Fix tests
115 lines
3.8 KiB
Kotlin
115 lines
3.8 KiB
Kotlin
import org.apache.tools.ant.filters.ReplaceTokens
|
|
|
|
group = "org.gameyfin"
|
|
val appMainClass = "org.gameyfin.app.GameyfinApplicationKt"
|
|
|
|
plugins {
|
|
id("org.springframework.boot")
|
|
id("io.spring.dependency-management")
|
|
id("com.vaadin")
|
|
kotlin("jvm")
|
|
kotlin("plugin.spring")
|
|
kotlin("plugin.jpa")
|
|
id("com.google.devtools.ksp")
|
|
application
|
|
}
|
|
|
|
application {
|
|
mainClass.set(appMainClass)
|
|
}
|
|
|
|
allOpen {
|
|
annotations("javax.persistence.Entity", "javax.persistence.MappedSuperclass", "javax.persistence.Embedabble")
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
setUrl("https://maven.vaadin.com/vaadin-addons")
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// Spring Boot
|
|
implementation("org.springframework.boot:spring-boot-starter-actuator")
|
|
implementation("org.springframework.boot:spring-boot-starter-security")
|
|
implementation("org.springframework.boot:spring-boot-starter-validation")
|
|
implementation("org.springframework.boot:spring-boot-starter-aop")
|
|
implementation("org.springframework.cloud:spring-cloud-starter")
|
|
implementation("jakarta.validation:jakarta.validation-api:3.1.0")
|
|
|
|
// Kotlin extensions
|
|
implementation(kotlin("reflect"))
|
|
|
|
// Reactive
|
|
implementation("org.springframework.boot:spring-boot-starter-webflux")
|
|
implementation("io.projectreactor.kotlin:reactor-kotlin-extensions")
|
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
|
|
|
|
// Vaadin Hilla
|
|
implementation("com.vaadin:vaadin-core") {
|
|
exclude("com.vaadin:flow-react")
|
|
}
|
|
implementation("com.vaadin:vaadin-spring-boot-starter")
|
|
|
|
// Logging
|
|
implementation("io.github.oshai:kotlin-logging-jvm:7.0.3")
|
|
|
|
// Persistence & I/O
|
|
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
|
|
implementation("com.github.paulcwarren:spring-content-fs-boot-starter:3.0.17")
|
|
implementation("org.flywaydb:flyway-core")
|
|
implementation("commons-io:commons-io:2.18.0")
|
|
implementation("com.google.guava:guava:33.5.0-jre")
|
|
|
|
// SSO
|
|
implementation("org.springframework.boot:spring-boot-starter-oauth2-client")
|
|
implementation("org.springframework.boot:spring-boot-starter-oauth2-resource-server")
|
|
implementation("org.springframework.security:spring-security-oauth2-jose")
|
|
|
|
// Notifications
|
|
implementation("org.springframework.boot:spring-boot-starter-mail")
|
|
implementation("ch.digitalfondue.mjml4j:mjml4j:1.1.4")
|
|
|
|
// Plugins
|
|
implementation(project(":plugin-api"))
|
|
|
|
// Utils
|
|
implementation("org.apache.tika:tika-core:3.2.3")
|
|
implementation("me.xdrop:fuzzywuzzy:1.4.0")
|
|
implementation("com.vanniktech:blurhash:0.3.0")
|
|
|
|
// Development
|
|
developmentOnly("org.springframework.boot:spring-boot-devtools")
|
|
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
|
|
runtimeOnly("com.h2database:h2")
|
|
runtimeOnly("io.micrometer:micrometer-registry-prometheus")
|
|
|
|
// Testing
|
|
testImplementation(kotlin("test"))
|
|
testImplementation("org.springframework.boot:spring-boot-starter-test") {
|
|
exclude(group = "org.mockito", module = "mockito-core")
|
|
}
|
|
testImplementation("io.mockk:mockk:${rootProject.extra["mockkVersion"]}")
|
|
testImplementation("org.springframework.security:spring-security-test")
|
|
testImplementation("io.projectreactor:reactor-test")
|
|
}
|
|
|
|
dependencyManagement {
|
|
imports {
|
|
mavenBom("com.vaadin:vaadin-bom:${rootProject.extra["vaadinVersion"]}")
|
|
mavenBom("org.springframework.cloud:spring-cloud-dependencies:${rootProject.extra["springCloudVersion"]}")
|
|
}
|
|
}
|
|
|
|
tasks.withType<Test> {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
tasks.named<ProcessResources>("processResources") {
|
|
val projectVersion = rootProject.version.toString()
|
|
filesMatching("application.yml") {
|
|
filter<ReplaceTokens>("tokens" to mapOf("project.version" to projectVersion))
|
|
}
|
|
}
|
|
|