diff --git a/.github/config/.files.yaml b/.github/config/.files.yaml index 2894464831..64454c5fe1 100644 --- a/.github/config/.files.yaml +++ b/.github/config/.files.yaml @@ -9,6 +9,7 @@ ci: &ci build: &build - *ci - build.gradle + - gradle/spotless.gradle - app/(common|core|proprietary|saas)/build.gradle - Taskfile.yml - .taskfiles/backend.yml @@ -155,4 +156,5 @@ proprietary: &proprietary - configs/settings.yml.template - build.gradle - app/proprietary/build.gradle + - gradle/spotless.gradle - .github/workflows/build-enterprise.yml diff --git a/.github/workflows/sync_files_v2.yml b/.github/workflows/sync_files_v2.yml index 38873bb1eb..357f5d5a87 100644 --- a/.github/workflows/sync_files_v2.yml +++ b/.github/workflows/sync_files_v2.yml @@ -10,6 +10,7 @@ on: - "app/common/build.gradle" - "app/core/build.gradle" - "app/proprietary/build.gradle" + - "gradle/spotless.gradle" - "README.md" - "frontend/editor/public/locales/*/translation.toml" - "app/core/src/main/resources/static/3rdPartyLicenses.json" diff --git a/app/common/build.gradle b/app/common/build.gradle index 516edd4897..3ab0369e34 100644 --- a/app/common/build.gradle +++ b/app/common/build.gradle @@ -2,32 +2,6 @@ bootRun { enabled = false } -spotless { - java { - target 'src/**/java/**/*.java' - targetExclude 'src/main/java/org/apache/**' - googleJavaFormat(googleJavaFormatVersion).aosp().reorderImports(false) - // google-java-format 1.28.0 bundles Guava 32.x which crashes Spotless lint on JDK 24/25 - suppressLintsFor { setStep('google-java-format') } - - importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling") - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } - yaml { - target '**/*.yml', '**/*.yaml' - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } - format 'gradle', { - target '**/gradle/*.gradle', '**/*.gradle' - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } -} dependencies { api "com.google.guava:guava:${guavaVersion}" api 'org.springframework.boot:spring-boot-starter-webmvc' diff --git a/app/core/build.gradle b/app/core/build.gradle index 6a55d89304..578ace75cc 100644 --- a/app/core/build.gradle +++ b/app/core/build.gradle @@ -9,35 +9,6 @@ configurations { } } -spotless { - java { - target 'src/**/java/**/*.java' - targetExclude 'src/main/resources/static/**', 'src/main/java/org/apache/**' - googleJavaFormat(googleJavaFormatVersion).aosp().reorderImports(false) - // google-java-format 1.28.0 bundles Guava 32.x which crashes Spotless lint on JDK 24/25 - suppressLintsFor { setStep('google-java-format') } - - importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling") - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } - yaml { - target '**/*.yml', '**/*.yaml' - targetExclude 'src/main/resources/static/**' - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } - format 'gradle', { - target '**/gradle/*.gradle', '**/*.gradle' - targetExclude 'src/main/resources/static/**' - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } -} - dependencies { if (!gradle.ext.disableAdditional) { implementation project(':proprietary') diff --git a/app/proprietary/build.gradle b/app/proprietary/build.gradle index 60f6541c82..d2028f7859 100644 --- a/app/proprietary/build.gradle +++ b/app/proprietary/build.gradle @@ -6,33 +6,6 @@ repositories { bootRun { enabled = false } - -spotless { - java { - target 'src/**/java/**/*.java' - targetExclude 'src/main/java/org/apache/**' - googleJavaFormat(googleJavaFormatVersion).aosp().reorderImports(false) - // google-java-format 1.28.0 bundles Guava 32.x which crashes Spotless lint on JDK 24/25 - suppressLintsFor { setStep('google-java-format') } - - importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling") - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } - yaml { - target '**/*.yml', '**/*.yaml' - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } - format 'gradle', { - target '**/gradle/*.gradle', '**/*.gradle' - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } -} dependencies { implementation project(':common') api "com.google.guava:guava:${guavaVersion}" diff --git a/app/saas/build.gradle b/app/saas/build.gradle index d6ae305def..38a16f7de8 100644 --- a/app/saas/build.gradle +++ b/app/saas/build.gradle @@ -2,32 +2,6 @@ bootRun { enabled = false } -spotless { - java { - target 'src/**/java/**/*.java' - targetExclude 'src/main/java/org/apache/**' - googleJavaFormat(googleJavaFormatVersion).aosp().reorderImports(false) - suppressLintsFor { setStep('google-java-format') } - - importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling") - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } - yaml { - target '**/*.yml', '**/*.yaml' - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } - format 'gradle', { - target '**/gradle/*.gradle', '**/*.gradle' - trimTrailingWhitespace() - leadingTabsToSpaces() - endWithNewline() - } -} - dependencies { implementation project(':common') implementation project(':proprietary') diff --git a/build.gradle b/build.gradle index e2f47e26fb..4da9bb1055 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ ext { springSecuritySamlVersion = "7.0.5" openSamlVersion = "5.2.1" commonmarkVersion = "0.28.0" - googleJavaFormatVersion = "1.28.0" + googleJavaFormatVersion = "1.35.0" logback = "1.5.32" commonsIoVersion = "2.22.0" commonsLang3 = "3.20.0" @@ -37,7 +37,7 @@ ext { gsonVersion = "2.14.0" guavaVersion = "33.6.0-jre" jinjavaVersion = "2.8.3" - jackson2Version = "2.21.2" + jackson2Version = "2.21.4" bucket4jVersion = "8.19.0" archunitVersion = "1.4.2" batikVersion = "1.19" @@ -171,6 +171,7 @@ subprojects { apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' apply plugin: 'jacoco' + apply from: rootProject.file('gradle/spotless.gradle') java { sourceCompatibility = JavaVersion.VERSION_25 diff --git a/gradle/spotless.gradle b/gradle/spotless.gradle new file mode 100644 index 0000000000..efc4096a5e --- /dev/null +++ b/gradle/spotless.gradle @@ -0,0 +1,37 @@ +spotless { + java { + target 'src/**/java/**/*.java' + if (project.name == 'stirling-pdf') { + targetExclude 'src/main/resources/static/**', 'src/main/java/org/apache/**' + } else { + targetExclude 'src/main/java/org/apache/**' + } + + // licenseHeaderFile(file('config/license-header.txt')).updateYearWithLatest(true).yearStringFormat('%s') + removeUnusedImports() + googleJavaFormat(rootProject.ext.googleJavaFormatVersion).aosp().reorderImports(false) + + importOrder('java', 'javax', 'org', 'com', 'net', 'io', 'jakarta', 'lombok', 'me', 'stirling') + trimTrailingWhitespace() + leadingTabsToSpaces() + endWithNewline() + } + yaml { + target '**/*.yml', '**/*.yaml' + if (project.name == 'stirling-pdf') { + targetExclude 'src/main/resources/static/**' + } + trimTrailingWhitespace() + leadingTabsToSpaces() + endWithNewline() + } + format 'gradle', { + target '**/gradle/*.gradle', '**/*.gradle' + if (project.name == 'stirling-pdf') { + targetExclude 'src/main/resources/static/**' + } + trimTrailingWhitespace() + leadingTabsToSpaces() + endWithNewline() + } +}