mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-02-21 00:17:05 +01:00
# Description of Changes This pull request includes several updates to the Docker configuration and Java application UI scaling. The changes enhance environment variable management, dependency installation, and UI responsiveness to different screen sizes. ### Docker Configuration Updates: * Added new environment variables `STIRLING_PDF_DESKTOP_UI`, `PYTHONPATH`, `UNO_PATH`, and `URE_BOOTSTRAP` to `Dockerfile` and `Dockerfile.fat` to improve the configuration and integration of the LibreOffice environment. [[1]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L38-R46) [[2]](diffhunk://#diff-571631582b988e88c52c86960cc083b0b8fa63cf88f056f26e9e684195221c27L40-R49) * Updated the `CMD` instruction in `Dockerfile` and `Dockerfile.fat` to run both the Java application and `unoserver` simultaneously. [[1]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L87-R96) [[2]](diffhunk://#diff-571631582b988e88c52c86960cc083b0b8fa63cf88f056f26e9e684195221c27L87-R100) * Modified the `RUN` instruction to include additional Python dependencies and setup a virtual environment. [[1]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L68-R81) [[2]](diffhunk://#diff-571631582b988e88c52c86960cc083b0b8fa63cf88f056f26e9e684195221c27R72-R86) ### Workflow Enhancements: * Added `STIRLING_PDF_DESKTOP_UI` environment variable to the GitHub Actions workflows (`PR-Demo-Comment.yml` and `push-docker.yml`) to ensure consistent environment settings. [[1]](diffhunk://#diff-145fe5c0ed8c24e4673c9ad39800dd171a2d0a2e8050497cff980fc7e3a3df0dR106) [[2]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fR41) ### Java Application UI Scaling: * Introduced `UIScaling` utility to dynamically adjust the size of UI components based on screen resolution in `DesktopBrowser` and `LoadingWindow` classes. [[1]](diffhunk://#diff-dff83b0fe53cba8ee80dc8cee96b9c2bfec612ec1f2c636ebdf22dedb36671e8L218-R219) [[2]](diffhunk://#diff-dff83b0fe53cba8ee80dc8cee96b9c2bfec612ec1f2c636ebdf22dedb36671e8L267-R270) [[3]](diffhunk://#diff-3e287daf297213b698b3c94d6e6ed4aae139d570ba6b115da459d72b5c36c42fL44-R64) [[4]](diffhunk://#diff-3e287daf297213b698b3c94d6e6ed4aae139d570ba6b115da459d72b5c36c42fL86-R102) * Improved the loading of icons by using the `UIScaling` utility for better visual quality. --- ## 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/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/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### 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 tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --------- Co-authored-by: pixeebot[bot] <104101892+pixeebot[bot]@users.noreply.github.com> Co-authored-by: a <a>
477 lines
18 KiB
Groovy
477 lines
18 KiB
Groovy
plugins {
|
|
id "java"
|
|
id "org.springframework.boot" version "3.4.1"
|
|
id "io.spring.dependency-management" version "1.1.7"
|
|
id "org.springdoc.openapi-gradle-plugin" version "1.8.0"
|
|
id "io.swagger.swaggerhub" version "1.3.2"
|
|
id "edu.sc.seis.launch4j" version "3.0.6"
|
|
id "com.diffplug.spotless" version "7.0.2"
|
|
id "com.github.jk1.dependency-license-report" version "2.9"
|
|
//id "nebula.lint" version "19.0.3"
|
|
id("org.panteleyev.jpackageplugin") version "1.6.1"
|
|
id "org.sonarqube" version "6.0.1.5171"
|
|
}
|
|
|
|
import com.github.jk1.license.render.*
|
|
|
|
ext {
|
|
springBootVersion = "3.4.2"
|
|
pdfboxVersion = "3.0.4"
|
|
imageioVersion = "3.12.0"
|
|
lombokVersion = "1.18.36"
|
|
bouncycastleVersion = "1.80"
|
|
springSecuritySamlVersion = "6.4.2"
|
|
openSamlVersion = "4.3.2"
|
|
}
|
|
|
|
group = "stirling.software"
|
|
version = "0.42.0"
|
|
|
|
java {
|
|
// 17 is lowest but we support and recommend 21
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
maven { url = "https://build.shibboleth.net/maven/releases" }
|
|
maven { url = "https://maven.pkg.github.com/jcefmaven/jcefmaven" }
|
|
}
|
|
|
|
licenseReport {
|
|
renderers = [new JsonReportRenderer()]
|
|
allowedLicensesFile = new File("$projectDir/allowed-licenses.json")
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
if (System.getenv("DOCKER_ENABLE_SECURITY") == "false") {
|
|
exclude "stirling/software/SPDF/config/security/**"
|
|
exclude "stirling/software/SPDF/controller/api/DatabaseController.java"
|
|
exclude "stirling/software/SPDF/controller/api/UserController.java"
|
|
exclude "stirling/software/SPDF/controller/api/H2SQLCondition.java"
|
|
exclude "stirling/software/SPDF/controller/web/AccountWebController.java"
|
|
exclude "stirling/software/SPDF/controller/web/DatabaseWebController.java"
|
|
exclude "stirling/software/SPDF/model/ApiKeyAuthenticationToken.java"
|
|
exclude "stirling/software/SPDF/model/AttemptCounter.java"
|
|
exclude "stirling/software/SPDF/model/Authority.java"
|
|
exclude "stirling/software/SPDF/model/BackupNotFoundException.java"
|
|
exclude "stirling/software/SPDF/model/PersistentLogin.java"
|
|
exclude "stirling/software/SPDF/model/SessionEntity.java"
|
|
exclude "stirling/software/SPDF/model/User.java"
|
|
exclude "stirling/software/SPDF/repository/**"
|
|
}
|
|
|
|
if (System.getenv("STIRLING_PDF_DESKTOP_UI") == "false") {
|
|
exclude "stirling/software/SPDF/UI/impl/**"
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
test {
|
|
java {
|
|
if (System.getenv("DOCKER_ENABLE_SECURITY") == "false") {
|
|
exclude "stirling/software/SPDF/config/security/**"
|
|
exclude "stirling/software/SPDF/controller/api/UserControllerTest.java"
|
|
exclude "stirling/software/SPDF/controller/api/DatabaseControllerTest.java"
|
|
exclude "stirling/software/SPDF/controller/web/AccountWebControllerTest.java"
|
|
exclude "stirling/software/SPDF/controller/web/DatabaseWebControllerTest.java"
|
|
exclude "stirling/software/SPDF/model/ApiKeyAuthenticationTokenTest.java"
|
|
exclude "stirling/software/SPDF/model/AttemptCounterTest.java"
|
|
exclude "stirling/software/SPDF/model/AuthorityTest.java"
|
|
exclude "stirling/software/SPDF/model/PersistentLoginTest.java"
|
|
exclude "stirling/software/SPDF/model/SessionEntityTest.java"
|
|
exclude "stirling/software/SPDF/model/UserTest.java"
|
|
exclude "stirling/software/SPDF/repository/**"
|
|
}
|
|
|
|
if (System.getenv("STIRLING_PDF_DESKTOP_UI") == "false") {
|
|
exclude "stirling/software/SPDF/UI/impl/**"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
openApi {
|
|
apiDocsUrl = "http://localhost:8080/v1/api-docs"
|
|
outputDir = file("$projectDir")
|
|
outputFileName = "SwaggerDoc.json"
|
|
}
|
|
|
|
//0.11.5 to 2024.11.5
|
|
def getMacVersion(String version) {
|
|
def currentYear = java.time.Year.now().getValue()
|
|
def versionParts = version.split("\\.", 2)
|
|
return "${currentYear}.${versionParts.length > 1 ? versionParts[1] : versionParts[0]}"
|
|
}
|
|
|
|
jpackage {
|
|
input = "build/libs"
|
|
destination = "${projectDir}/build/jpackage"
|
|
mainJar = "Stirling-PDF-${project.version}.jar"
|
|
appName = "Stirling-PDF"
|
|
appVersion = project.version
|
|
vendor = "Stirling-Software"
|
|
appDescription = "Stirling PDF - Your Local PDF Editor"
|
|
icon = "src/main/resources/static/favicon.ico"
|
|
verbose = true
|
|
// mainClass = "org.springframework.boot.loader.launch.JarLauncher"
|
|
|
|
// JVM Options
|
|
javaOptions = [
|
|
"-DBROWSER_OPEN=true",
|
|
"-DSTIRLING_PDF_DESKTOP_UI=true",
|
|
"-Djava.awt.headless=false",
|
|
"-Dapple.awt.UIElement=true",
|
|
"--add-opens=java.base/java.lang=ALL-UNNAMED",
|
|
"--add-opens=java.desktop/java.awt.event=ALL-UNNAMED",
|
|
"--add-opens=java.desktop/sun.awt=ALL-UNNAMED",
|
|
"--add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED",
|
|
"--add-opens=java.desktop/sun.awt.windows=ALL-UNNAMED",
|
|
"--add-opens=java.desktop/sun.lwawt=ALL-UNNAMED",
|
|
"--add-opens=java.desktop/sun.lwawt.macosx=ALL-UNNAMED",
|
|
]
|
|
|
|
// Windows-specific configuration
|
|
windows {
|
|
launcherAsService = false
|
|
appVersion = project.version
|
|
|
|
winConsole = false
|
|
winMenu = true // Creates start menu entry
|
|
winShortcut = true // Creates desktop shortcut
|
|
winShortcutPrompt = true // Lets user choose whether to create shortcuts
|
|
winDirChooser = true // Allows users to choose installation directory
|
|
winPerUserInstall = false
|
|
winMenuGroup = "Stirling Software"
|
|
winUpgradeUuid = "2a43ed0c-b8c2-40cf-89e1-751129b87641" // Unique identifier for updates
|
|
winHelpUrl = "https://github.com/Stirling-Tools/Stirling-PDF"
|
|
winUpdateUrl = "https://github.com/Stirling-Tools/Stirling-PDF/releases"
|
|
type = "exe"
|
|
installDir = "C:/Program Files/Stirling-PDF"
|
|
}
|
|
|
|
// macOS-specific configuration
|
|
mac {
|
|
appVersion = getMacVersion(project.version.toString())
|
|
icon = "src/main/resources/static/favicon.icns"
|
|
type = "dmg"
|
|
macPackageIdentifier = "com.stirling.software.pdf"
|
|
macPackageName = "Stirling-PDF"
|
|
macAppCategory = "public.app-category.productivity"
|
|
macSign = false // Enable signing
|
|
macAppStore = false // Not targeting App Store initially
|
|
|
|
//installDir = "Applications"
|
|
|
|
// Add license and other documentation to DMG
|
|
/*macDmgContent = [
|
|
"README.md",
|
|
"LICENSE",
|
|
"CHANGELOG.md"
|
|
]*/
|
|
|
|
// Enable Mac-specific entitlements
|
|
//macEntitlements = "entitlements.plist" // You'll need to create this file
|
|
}
|
|
|
|
// Linux-specific configuration
|
|
linux {
|
|
appVersion = project.version
|
|
icon = "src/main/resources/static/favicon.png"
|
|
type = "deb" // Can also use "rpm" for Red Hat-based systems
|
|
|
|
// Debian package configuration
|
|
//linuxPackageName = "stirlingpdf"
|
|
linuxDebMaintainer = "support@stirlingpdf.com"
|
|
linuxMenuGroup = "Office;PDF;Productivity"
|
|
linuxAppCategory = "Office"
|
|
linuxAppRelease = "1"
|
|
linuxPackageDeps = true
|
|
|
|
installDir = "/opt/Stirling-PDF"
|
|
|
|
// RPM-specific settings
|
|
//linuxRpmLicenseType = "MIT"
|
|
}
|
|
|
|
// Common additional options
|
|
//jLinkOptions = [
|
|
// "--strip-debug",
|
|
// "--compress=2",
|
|
// "--no-header-files",
|
|
// "--no-man-pages"
|
|
//]
|
|
|
|
// Add any additional modules required
|
|
/*addModules = [
|
|
"java.base",
|
|
"java.desktop",
|
|
"java.logging",
|
|
"java.sql",
|
|
"java.xml",
|
|
"jdk.crypto.ec"
|
|
]*/
|
|
|
|
// Add copyright and license information
|
|
copyright = "Copyright © 2024 Stirling Software"
|
|
licenseFile = "LICENSE"
|
|
}
|
|
|
|
|
|
launch4j {
|
|
icon = "${projectDir}/src/main/resources/static/favicon.ico"
|
|
|
|
outfile="Stirling-PDF.exe"
|
|
|
|
if(System.getenv("STIRLING_PDF_DESKTOP_UI") == 'true') {
|
|
headerType = "gui"
|
|
} else {
|
|
headerType = "console"
|
|
}
|
|
jarTask = tasks.bootJar
|
|
|
|
errTitle="Encountered error, Do you have Java 21?"
|
|
downloadUrl="https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.exe"
|
|
|
|
if(System.getenv("STIRLING_PDF_DESKTOP_UI") == 'true') {
|
|
variables=["BROWSER_OPEN=true", "STIRLING_PDF_DESKTOP_UI=true"]
|
|
} else {
|
|
variables=["BROWSER_OPEN=true"]
|
|
}
|
|
|
|
jreMinVersion="17"
|
|
|
|
mutexName="Stirling-PDF"
|
|
windowTitle="Stirling-PDF"
|
|
|
|
messagesStartupError="An error occurred while starting Stirling-PDF"
|
|
// messagesJreNotFoundError="This application requires a Java Runtime Environment, Please download Java 17."
|
|
messagesJreVersionError="You are running the wrong version of Java, Please download Java 21."
|
|
messagesLauncherError="Java is corrupted. Please uninstall and then install Java 21."
|
|
messagesInstanceAlreadyExists="Stirling-PDF is already running."
|
|
}
|
|
|
|
spotless {
|
|
java {
|
|
target project.fileTree('src/main/java')
|
|
|
|
googleJavaFormat("1.25.2").aosp().reorderImports(false)
|
|
|
|
importOrder("java", "javax", "org", "com", "net", "io")
|
|
toggleOffOn()
|
|
trimTrailingWhitespace()
|
|
leadingTabsToSpaces()
|
|
endWithNewline()
|
|
}
|
|
}
|
|
|
|
sonar {
|
|
properties {
|
|
property "sonar.projectKey", "Stirling-Tools_Stirling-PDF"
|
|
property "sonar.organization", "stirling-tools"
|
|
|
|
property "sonar.exclusions", "**/build-wrapper-dump.json, src/main/java/org/apache/**, src/main/resources/static/pdfjs/**, src/main/resources/static/pdfjs-legacy/**, src/main/resources/static/js/thirdParty/**"
|
|
property "sonar.coverage.exclusions", "src/main/java/org/apache/**, src/main/resources/static/pdfjs/**, src/main/resources/static/pdfjs-legacy/**, src/main/resources/static/js/thirdParty/**"
|
|
property "sonar.cpd.exclusions", "src/main/java/org/apache/**, src/main/resources/static/pdfjs/**, src/main/resources/static/pdfjs-legacy/**, src/main/resources/static/js/thirdParty/**"
|
|
}
|
|
}
|
|
|
|
//gradleLint {
|
|
// rules=['unused-dependency']
|
|
// }
|
|
tasks.wrapper {
|
|
gradleVersion = "8.12"
|
|
}
|
|
//tasks.withType(JavaCompile) {
|
|
// options.compilerArgs << "-Xlint:deprecation"
|
|
//}
|
|
configurations.all {
|
|
exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
|
|
}
|
|
dependencies {
|
|
|
|
//tmp for security bumps
|
|
implementation 'ch.qos.logback:logback-core:1.5.15'
|
|
implementation 'ch.qos.logback:logback-classic:1.5.15'
|
|
|
|
|
|
// Exclude vulnerable BouncyCastle version used in tableau
|
|
configurations.all {
|
|
exclude group: 'org.bouncycastle', module: 'bcpkix-jdk15on'
|
|
exclude group: 'org.bouncycastle', module: 'bcutil-jdk15on'
|
|
exclude group: 'org.bouncycastle', module: 'bcmail-jdk15on'
|
|
}
|
|
|
|
if (System.getenv("STIRLING_PDF_DESKTOP_UI") != "false") {
|
|
implementation 'org.apache.commons:commons-compress:1.26.0'
|
|
implementation "me.friwi:jcefmaven:127.3.1"
|
|
implementation "org.openjfx:javafx-controls:21"
|
|
implementation "org.openjfx:javafx-swing:21"
|
|
}
|
|
|
|
//security updates
|
|
implementation "org.springframework:spring-webmvc:6.2.3"
|
|
|
|
implementation("io.github.pixee:java-security-toolkit:1.2.1")
|
|
|
|
// Exclude Tomcat and include Jetty
|
|
implementation("org.springframework.boot:spring-boot-starter-web:$springBootVersion")
|
|
implementation "org.springframework.boot:spring-boot-starter-jetty:$springBootVersion"
|
|
|
|
implementation "org.springframework.boot:spring-boot-starter-thymeleaf:$springBootVersion"
|
|
implementation 'com.posthog.java:posthog:1.2.0'
|
|
implementation 'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20240325.1'
|
|
|
|
|
|
if (System.getenv("DOCKER_ENABLE_SECURITY") != "false") {
|
|
implementation "org.springframework.boot:spring-boot-starter-security:$springBootVersion"
|
|
implementation "org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.1.3.RELEASE"
|
|
implementation "org.springframework.boot:spring-boot-starter-data-jpa:$springBootVersion"
|
|
implementation "org.springframework.boot:spring-boot-starter-oauth2-client:$springBootVersion"
|
|
|
|
implementation "org.springframework.session:spring-session-core:3.4.1"
|
|
implementation "org.springframework:spring-jdbc:6.2.3"
|
|
|
|
implementation 'com.unboundid.product.scim2:scim2-sdk-client:2.3.5'
|
|
// Don't upgrade h2database
|
|
runtimeOnly "com.h2database:h2:2.3.232"
|
|
runtimeOnly "org.postgresql:postgresql:42.7.5"
|
|
constraints {
|
|
implementation "org.opensaml:opensaml-core:$openSamlVersion"
|
|
implementation "org.opensaml:opensaml-saml-api:$openSamlVersion"
|
|
implementation "org.opensaml:opensaml-saml-impl:$openSamlVersion"
|
|
}
|
|
implementation "org.springframework.security:spring-security-saml2-service-provider:$springSecuritySamlVersion"
|
|
// implementation 'org.springframework.security:spring-security-core:$springSecuritySamlVersion'
|
|
implementation 'com.coveo:saml-client:5.0.0'
|
|
|
|
|
|
}
|
|
|
|
testImplementation "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
|
|
|
|
// Batik
|
|
implementation "org.apache.xmlgraphics:batik-all:1.18"
|
|
|
|
// TwelveMonkeys
|
|
runtimeOnly "com.twelvemonkeys.imageio:imageio-batik:$imageioVersion"
|
|
runtimeOnly "com.twelvemonkeys.imageio:imageio-bmp:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-hdr:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-icns:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-iff:$imageioVersion"
|
|
runtimeOnly "com.twelvemonkeys.imageio:imageio-jpeg:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-pcx:$imageioVersion@
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-pict:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-pnm:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-psd:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-sgi:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-tga:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-thumbsdb:$imageioVersion"
|
|
runtimeOnly "com.twelvemonkeys.imageio:imageio-tiff:$imageioVersion"
|
|
runtimeOnly "com.twelvemonkeys.imageio:imageio-webp:$imageioVersion"
|
|
// runtimeOnly "com.twelvemonkeys.imageio:imageio-xwd:$imageioVersion"
|
|
|
|
// Image metadata extractor
|
|
implementation "com.drewnoakes:metadata-extractor:2.19.0"
|
|
|
|
implementation "commons-io:commons-io:2.18.0"
|
|
implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0"
|
|
//general PDF
|
|
|
|
// https://mvnrepository.com/artifact/com.opencsv/opencsv
|
|
implementation ("com.opencsv:opencsv:5.10") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
|
|
implementation ("org.apache.pdfbox:pdfbox:$pdfboxVersion") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
implementation "org.apache.pdfbox:preflight:$pdfboxVersion"
|
|
|
|
|
|
implementation ("org.apache.pdfbox:xmpbox:$pdfboxVersion") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
|
|
// https://mvnrepository.com/artifact/technology.tabula/tabula
|
|
implementation ('technology.tabula:tabula:1.0.5') {
|
|
exclude group: "org.slf4j", module: "slf4j-simple"
|
|
exclude group: "org.bouncycastle", module: "bcprov-jdk15on"
|
|
exclude group: "com.google.code.gson", module: "gson"
|
|
}
|
|
|
|
implementation 'org.apache.pdfbox:jbig2-imageio:3.0.4'
|
|
|
|
implementation "org.bouncycastle:bcprov-jdk18on:$bouncycastleVersion"
|
|
implementation "org.bouncycastle:bcpkix-jdk18on:$bouncycastleVersion"
|
|
implementation "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
|
|
implementation "io.micrometer:micrometer-core:1.14.3"
|
|
implementation group: "com.google.zxing", name: "core", version: "3.5.3"
|
|
// https://mvnrepository.com/artifact/org.commonmark/commonmark
|
|
implementation "org.commonmark:commonmark:0.24.0"
|
|
implementation "org.commonmark:commonmark-ext-gfm-tables:0.24.0"
|
|
// https://mvnrepository.com/artifact/com.bucket4j/bucket4j_jdk17
|
|
implementation "com.bucket4j:bucket4j_jdk17-core:8.14.0"
|
|
implementation "com.fathzer:javaluator:3.0.5"
|
|
|
|
implementation 'com.vladsch.flexmark:flexmark-html2md-converter:0.64.8'
|
|
|
|
developmentOnly("org.springframework.boot:spring-boot-devtools:$springBootVersion")
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
|
|
testRuntimeOnly 'org.mockito:mockito-inline:5.2.0'
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.encoding = "UTF-8"
|
|
dependsOn "spotlessApply"
|
|
}
|
|
compileJava {
|
|
options.compilerArgs << "-parameters"
|
|
}
|
|
|
|
task writeVersion {
|
|
def propsFile = file("src/main/resources/version.properties")
|
|
def props = new Properties()
|
|
props.setProperty("version", version)
|
|
props.store(propsFile.newWriter(), null)
|
|
}
|
|
|
|
swaggerhubUpload {
|
|
// dependsOn = generateOpenApiDocs // Depends on your task generating Swagger docs
|
|
api = "Stirling-PDF" // The name of your API on SwaggerHub
|
|
owner = "Frooodle" // Your SwaggerHub username (or organization name)
|
|
version = project.version // The version of your API
|
|
inputFile = "./SwaggerDoc.json" // The path to your Swagger docs
|
|
token = "${System.getenv("SWAGGERHUB_API_KEY")}" // Your SwaggerHub API key, passed as an environment variable
|
|
oas = "3.0.0" // The version of the OpenAPI Specification you"re using
|
|
}
|
|
|
|
jar {
|
|
enabled = false
|
|
manifest {
|
|
attributes "Implementation-Title": "Stirling-PDF",
|
|
"Implementation-Version": project.version
|
|
}
|
|
|
|
}
|
|
|
|
tasks.named("test") {
|
|
useJUnitPlatform()
|
|
}
|
|
task printVersion {
|
|
doLast {
|
|
println project.version
|
|
}
|
|
}
|
|
|
|
task printMacVersion {
|
|
doLast {
|
|
println getMacVersion(project.version.toString())
|
|
}
|
|
}
|