Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,9 @@ ij_java_wrap_comments = false
ij_java_wrap_first_method_in_call_chain = false
ij_java_wrap_long_lines = false

[*.kt]
indent_style = tab

[{*.ad,*.adoc,*.asciidoc,.asciidoctorconfig}]
ij_asciidoc_blank_lines_after_header = 1
ij_asciidoc_blank_lines_keep_after_header = 1
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/gradle_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,7 @@ jobs:
docker-repo: ${{ secrets.DOCKER_REPO }}
docker-username: ${{ secrets.DOCKER_USERNAME }}
docker-token: ${{ secrets.DOCKER_TOKEN }}
jib-extra-params: |
-Djib.from.image=${{ secrets.DOCKER_REPO }}/rakambda/eclipse-temurin-ffmpeg:9.0-27-jre \
-Djib.from.auth.username=${{ secrets.DOCKER_USERNAME }} \
-Djib.from.auth.password=${{ secrets.DOCKER_TOKEN }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ target/
*.iml
config.json
FileSecure.json
config.yaml
config.yml
480 changes: 428 additions & 52 deletions README.md

Large diffs are not rendered by default.

85 changes: 45 additions & 40 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,78 +1,91 @@
import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
idea
java
application
alias(libs.plugins.kotlin)
alias(libs.plugins.shadow)
alias(libs.plugins.jib)
}

group = "fr.rakambda"
description = "FileSecure"

val javaVersion = providers.gradleProperty("javaVersion").get()

dependencies {
implementation(platform(libs.jacksonBom))
implementation(platform(libs.log4j2Bom))

implementation(libs.coroutines)

implementation(libs.slf4j)
implementation(libs.bundles.log4j2)
implementation(libs.kotlinLogging)

implementation(libs.unirest)
implementation(libs.pointLocation)
implementation(libs.metadataExtractor)

implementation(libs.picocli)
implementation(libs.clikt)
implementation(libs.bundles.jackson)
implementation(libs.jSpecify)

compileOnly(libs.lombok)
implementation(libs.pointLocation)
implementation(libs.timeshape)
constraints {
implementation(libs.protobuf) {
because("Versions before 4.36 call sun.misc.Unsafe memory methods, printing JVM warnings since JDK 24")
}
}
implementation(libs.metadataExtractor)

annotationProcessor(libs.lombok)
implementation(libs.jaffree)
implementation(libs.progressbar)
implementation(libs.h2)
implementation(libs.bundles.jna)

implementation(platform(libs.junitBom))
testImplementation(platform(libs.junitBom))
testImplementation(libs.bundles.junit)
testRuntimeOnly(libs.junitPlatformLauncher)

testImplementation(libs.bundles.assertj)
testImplementation(libs.bundles.mockito)

testCompileOnly(libs.lombok)

testAnnotationProcessor(libs.lombok)
testImplementation(libs.jsonSchemaValidator)
}

repositories {
mavenCentral()
}

tasks {
processResources {
expand(project.properties)
}

compileJava {
val moduleName: String by project
inputs.property("moduleName", moduleName)

options.encoding = "UTF-8"
options.isDeprecation = true
}
java {
sourceCompatibility = JavaVersion.toVersion(javaVersion)
targetCompatibility = JavaVersion.toVersion(javaVersion)
}

compileTestJava {
options.encoding = "UTF-8"
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.fromTarget(javaVersion))
}
}

tasks {
test {
useJUnitPlatform()
jvmArgs("--enable-native-access=ALL-UNNAMED")
inputs.files("config.schema.json", "README.md").withPathSensitivity(PathSensitivity.RELATIVE)
}

jar {
manifest {
attributes["Multi-Release"] = "true"
// The zstd library used by timeshape loads a native library
attributes["Enable-Native-Access"] = "ALL-UNNAMED"
}
}

register<JavaExec>("migrateConfig") {
group = "application"
description = "Converts FileSecure 12 and MediaConverter configurations, pass the files with --args"
classpath = sourceSets["main"].runtimeClasspath
mainClass.set("fr.rakambda.filesecure.migration.MigrateConfigCommandKt")
jvmArgs("--enable-native-access=ALL-UNNAMED")
}

shadowJar {
archiveBaseName.set(project.name)
archiveClassifier.set("shaded")
Expand All @@ -84,16 +97,7 @@ tasks {
}

application {
val moduleName: String by project
val className: String by project

mainModule.set(moduleName)
mainClass.set(className)
}

java {
sourceCompatibility = JavaVersion.VERSION_26
targetCompatibility = JavaVersion.VERSION_26
mainClass.set(providers.gradleProperty("className"))
}

jib {
Expand All @@ -111,6 +115,7 @@ jib {
}
}
container {
jvmFlags = listOf("--enable-native-access=ALL-UNNAMED")
creationTime.set("USE_CURRENT_TIMESTAMP")
user = "1027:100"
}
Expand Down
Loading
Loading