mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-03 05:10:16 +03:00
# Description of Changes This change centralizes several dependency version declarations into shared Gradle version properties and updates module build files to reference those properties instead of hardcoded version strings. ### What was changed - Added centralized version properties in the root `build.gradle` for: - commons-io - commons-lang3 - rhino - okhttp BOM - gson - guava - bucket4j - archunit - batik - jpdfium - JWT - AWS SDK - Testcontainers - Replaced hardcoded dependency versions across multiple modules with shared version variables. - Updated `resolutionStrategy.force` declarations to use centralized version properties. - Updated dependency constraints and BOM references to use shared version variables. - Removed module-specific duplicate version declarations from `app/proprietary/build.gradle`. - Standardized dependency declarations across `common`, `core`, `proprietary`, and `saas` modules. ## Why the change was made - Reduce duplication of dependency version definitions. - Simplify future dependency upgrades and maintenance. - Ensure consistent dependency versions across all modules. - Improve readability and reduce the risk of version drift between subprojects. - Make security-related dependency overrides easier to maintain from a single location. --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have run `task check` to verify linters, typechecks, and tests pass - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#7-testing) for more details.
100 lines
4.5 KiB
Groovy
100 lines
4.5 KiB
Groovy
repositories {
|
|
maven { url = "https://repository.jboss.org/" }
|
|
maven { url = "https://build.shibboleth.net/maven/releases" }
|
|
}
|
|
|
|
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}"
|
|
|
|
api 'org.springframework:spring-jdbc'
|
|
api 'org.springframework:spring-webmvc'
|
|
api 'org.springframework.session:spring-session-core'
|
|
api "org.springframework.security:spring-security-core:$springSecuritySamlVersion"
|
|
api "org.springframework.security:spring-security-saml2-service-provider:$springSecuritySamlVersion"
|
|
api 'org.springframework.boot:spring-boot-starter-jetty'
|
|
api 'org.springframework.boot:spring-boot-starter-security'
|
|
api 'org.springframework.boot:spring-boot-starter-data-jpa'
|
|
api 'org.springframework.boot:spring-boot-starter-security-oauth2-client'
|
|
// MCP server (RFC 8707 audience binding + RFC 9728 metadata) - resource-server side only.
|
|
// Brings nimbus-jose-jwt onto the proprietary classpath if not already transitive via
|
|
// oauth2-client; on Boot 4.0.6 the delta is around 130KB because nimbus is already pulled.
|
|
api 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
|
|
api 'org.springframework.boot:spring-boot-starter-mail'
|
|
api 'org.springframework.boot:spring-boot-starter-cache'
|
|
api 'com.github.ben-manes.caffeine:caffeine'
|
|
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
|
|
api 'io.swagger.core.v3:swagger-core-jakarta:2.2.46'
|
|
implementation "com.bucket4j:bucket4j_jdk17-core:${bucket4jVersion}"
|
|
// Lettuce-backed Bucket4j ProxyManager used by ValkeyRateLimitStore for cluster-wide
|
|
// token-bucket rate limiting (parity with in-process Bucket4j semantics; no fixed-window
|
|
// boundary doubling).
|
|
implementation "com.bucket4j:bucket4j_jdk17-lettuce:${bucket4jVersion}"
|
|
|
|
// https://mvnrepository.com/artifact/com.bucket4j/bucket4j_jdk17
|
|
implementation "org.bouncycastle:bcprov-jdk18on:$bouncycastleVersion"
|
|
|
|
implementation "com.google.code.gson:gson:${gsonVersion}"
|
|
|
|
api 'io.micrometer:micrometer-registry-prometheus'
|
|
|
|
api "io.jsonwebtoken:jjwt-api:${jwtVersion}"
|
|
runtimeOnly "io.jsonwebtoken:jjwt-impl:${jwtVersion}"
|
|
runtimeOnly "io.jsonwebtoken:jjwt-jackson:${jwtVersion}"
|
|
runtimeOnly 'com.h2database:h2:2.3.232' // Don't upgrade h2database - file format incompatible with 2.4.x, would break existing user databases
|
|
runtimeOnly 'org.postgresql:postgresql:42.7.11'
|
|
implementation('com.coveo:saml-client:5.0.0') {
|
|
exclude group: 'org.opensaml', module: 'opensaml-core'
|
|
}
|
|
|
|
implementation "software.amazon.awssdk:s3:${awsSdkVersion}"
|
|
implementation "software.amazon.awssdk:url-connection-client:${awsSdkVersion}"
|
|
|
|
// Testcontainers: real MinIO/LocalStack (S3) and Valkey for integration tests in CI without
|
|
// manually-started instances. Tests skip cleanly when Docker is unavailable.
|
|
testImplementation "org.testcontainers:testcontainers:${testcontainersMinioVersion}"
|
|
testImplementation "org.testcontainers:minio:${testcontainersMinioVersion}"
|
|
testImplementation "org.testcontainers:localstack:${testcontainersMinioVersion}"
|
|
testImplementation "org.testcontainers:junit-jupiter:${testcontainersMinioVersion}"
|
|
}
|
|
|
|
tasks.register('prepareKotlinBuildScriptModel') {}
|
|
|
|
tasks.register('type3SignatureTool', JavaExec) {
|
|
group = 'type3'
|
|
description = 'Dump Type3 font signatures and glyph coverage for the Type3 library'
|
|
classpath = sourceSets.main.runtimeClasspath
|
|
mainClass = 'stirling.software.SPDF.service.pdfjson.type3.tool.Type3SignatureTool'
|
|
standardInput = System.in
|
|
}
|