2023-01-27 19:23:40 +01:00
|
|
|
plugins {
|
2023-12-30 03:34:36 +01:00
|
|
|
id 'java'
|
2024-02-01 23:40:36 +01:00
|
|
|
id 'org.springframework.boot' version '3.2.2'
|
2023-12-30 03:34:36 +01:00
|
|
|
id 'io.spring.dependency-management' version '1.1.3'
|
|
|
|
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.5'
|
2024-02-01 23:41:13 +01:00
|
|
|
id 'com.diffplug.spotless' version '6.25.0'
|
2024-01-04 00:01:33 +01:00
|
|
|
id 'com.github.jk1.dependency-license-report' version '2.5'
|
2023-01-27 19:23:40 +01:00
|
|
|
}
|
|
|
|
|
2024-01-04 00:01:33 +01:00
|
|
|
import com.github.jk1.license.render.*
|
|
|
|
|
2023-01-27 19:23:40 +01:00
|
|
|
group = 'stirling.software'
|
2024-03-09 15:03:46 +01:00
|
|
|
version = '0.22.1'
|
2023-01-27 19:23:40 +01:00
|
|
|
sourceCompatibility = '17'
|
|
|
|
|
|
|
|
repositories {
|
2023-12-30 03:34:36 +01:00
|
|
|
mavenCentral()
|
2023-01-27 19:23:40 +01:00
|
|
|
}
|
|
|
|
|
2024-01-04 00:01:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
licenseReport {
|
|
|
|
renderers = [new JsonReportRenderer()]
|
|
|
|
}
|
|
|
|
|
2023-08-27 12:59:08 +02:00
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
java {
|
2024-01-13 01:37:19 +01:00
|
|
|
if (System.getenv('DOCKER_ENABLE_SECURITY') == 'false') {
|
2023-08-27 12:59:08 +02:00
|
|
|
exclude 'stirling/software/SPDF/config/security/**'
|
|
|
|
exclude 'stirling/software/SPDF/controller/api/UserController.java'
|
|
|
|
exclude 'stirling/software/SPDF/controller/web/AccountWebController.java'
|
|
|
|
exclude 'stirling/software/SPDF/model/ApiKeyAuthenticationToken.java'
|
|
|
|
exclude 'stirling/software/SPDF/model/Authority.java'
|
|
|
|
exclude 'stirling/software/SPDF/model/PersistentLogin.java'
|
|
|
|
exclude 'stirling/software/SPDF/model/User.java'
|
|
|
|
exclude 'stirling/software/SPDF/repository/**'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-06-03 23:56:15 +02:00
|
|
|
openApi {
|
2023-09-14 22:25:18 +02:00
|
|
|
apiDocsUrl = "http://localhost:8080/v1/api-docs"
|
2023-06-04 00:01:14 +02:00
|
|
|
outputDir = file("$projectDir")
|
2023-06-03 23:56:15 +02:00
|
|
|
outputFileName = "SwaggerDoc.json"
|
|
|
|
}
|
|
|
|
|
2023-06-10 16:05:38 +02:00
|
|
|
|
|
|
|
launch4j {
|
|
|
|
icon = "${projectDir}/src/main/resources/static/favicon.ico"
|
|
|
|
|
|
|
|
outfile="Stirling-PDF.exe"
|
|
|
|
headerType="console"
|
|
|
|
jarTask = tasks.bootJar
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2023-06-10 16:05:38 +02:00
|
|
|
errTitle="Encountered error, Do you have Java 17?"
|
2023-10-31 18:58:40 +01:00
|
|
|
downloadUrl="https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe"
|
2023-12-28 19:46:54 +01:00
|
|
|
variables=["BROWSER_OPEN=true", "ENDPOINTS_GROUPS_TO_REMOVE=CLI"]
|
2023-06-10 16:05:38 +02:00
|
|
|
jreMinVersion="17"
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2023-06-10 16:05:38 +02:00
|
|
|
mutexName="Stirling-PDF"
|
|
|
|
windowTitle="Stirling-PDF"
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2023-06-10 16:05:38 +02:00
|
|
|
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 17."
|
|
|
|
messagesLauncherError="Java is corrupted. Please uninstall and then install Java 17."
|
|
|
|
messagesInstanceAlreadyExists="Stirling-PDF is already running."
|
|
|
|
}
|
|
|
|
|
2023-12-30 03:34:36 +01:00
|
|
|
spotless {
|
|
|
|
java {
|
|
|
|
target project.fileTree('src/main/java')
|
|
|
|
|
|
|
|
googleJavaFormat('1.19.1').aosp().reorderImports(false)
|
|
|
|
|
|
|
|
importOrder('java', 'javax', 'org', 'com', 'net', 'io')
|
|
|
|
toggleOffOn()
|
|
|
|
trimTrailingWhitespace()
|
|
|
|
indentWithSpaces()
|
|
|
|
endWithNewline()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-01-27 19:23:40 +01:00
|
|
|
dependencies {
|
2023-12-30 03:34:36 +01:00
|
|
|
//security updates
|
|
|
|
implementation 'ch.qos.logback:logback-classic:1.4.14'
|
|
|
|
implementation 'ch.qos.logback:logback-core:1.4.14'
|
2024-02-17 14:24:38 +01:00
|
|
|
implementation 'org.springframework:spring-webmvc:6.1.3'
|
2023-12-30 03:34:36 +01:00
|
|
|
|
2024-02-01 23:43:25 +01:00
|
|
|
implementation("io.github.pixee:java-security-toolkit:1.1.2")
|
2024-02-11 17:47:00 +01:00
|
|
|
|
2024-01-01 19:02:54 +01:00
|
|
|
implementation 'org.yaml:snakeyaml:2.2'
|
2024-02-01 23:40:36 +01:00
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-web:3.2.2'
|
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:3.2.2'
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2024-01-13 01:37:19 +01:00
|
|
|
if (System.getenv('DOCKER_ENABLE_SECURITY') != 'false') {
|
2024-02-01 23:40:36 +01:00
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-security:3.2.2'
|
2023-12-11 12:01:48 +01:00
|
|
|
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.1.2.RELEASE'
|
2024-02-01 23:40:36 +01:00
|
|
|
implementation "org.springframework.boot:spring-boot-starter-data-jpa:3.2.2"
|
2024-02-11 17:47:00 +01:00
|
|
|
|
2024-01-01 19:02:54 +01:00
|
|
|
//2.2.x requires rebuild of DB file.. need migration path
|
|
|
|
implementation "com.h2database:h2:2.1.214"
|
2023-08-27 12:59:08 +02:00
|
|
|
}
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2024-02-01 23:40:36 +01:00
|
|
|
testImplementation 'org.springframework.boot:spring-boot-starter-test:3.2.2'
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2023-12-24 02:27:04 +01:00
|
|
|
// Batik
|
|
|
|
implementation 'org.apache.xmlgraphics:batik-all:1.17'
|
|
|
|
|
|
|
|
// TwelveMonkeys
|
|
|
|
implementation 'com.twelvemonkeys.imageio:imageio-batik:3.10.1'
|
|
|
|
implementation 'com.twelvemonkeys.imageio:imageio-bmp:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-hdr:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-icns:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-iff:3.10.1'
|
|
|
|
implementation 'com.twelvemonkeys.imageio:imageio-jpeg:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-pcx:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-pict:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-pnm:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-psd:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-sgi:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-tga:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-thumbsdb:3.10.1'
|
|
|
|
implementation 'com.twelvemonkeys.imageio:imageio-tiff:3.10.1'
|
|
|
|
implementation 'com.twelvemonkeys.imageio:imageio-webp:3.10.1'
|
|
|
|
// implementation 'com.twelvemonkeys.imageio:imageio-xwd:3.10.1'
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2023-12-18 15:58:06 +01:00
|
|
|
implementation 'commons-io:commons-io:2.15.1'
|
2023-09-06 23:24:15 +02:00
|
|
|
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
|
2023-10-31 18:58:40 +01:00
|
|
|
|
|
|
|
//general PDF
|
|
|
|
|
|
|
|
// https://mvnrepository.com/artifact/com.opencsv/opencsv
|
2024-01-01 19:31:36 +01:00
|
|
|
implementation ('com.opencsv:opencsv:5.9') {
|
2023-12-18 15:52:18 +01:00
|
|
|
exclude group: 'commons-logging', module: 'commons-logging'
|
|
|
|
}
|
2024-02-11 17:47:00 +01:00
|
|
|
|
2024-01-13 00:15:27 +01:00
|
|
|
implementation ('org.apache.pdfbox:pdfbox:3.0.1'){
|
2023-12-18 15:52:18 +01:00
|
|
|
exclude group: 'commons-logging', module: 'commons-logging'
|
|
|
|
}
|
2024-02-11 17:47:00 +01:00
|
|
|
|
2024-01-13 00:15:27 +01:00
|
|
|
implementation ('org.apache.pdfbox:xmpbox:3.0.1'){
|
2023-12-18 15:52:18 +01:00
|
|
|
exclude group: 'commons-logging', module: 'commons-logging'
|
|
|
|
}
|
2024-02-11 17:47:00 +01:00
|
|
|
|
2023-12-16 11:22:33 +01:00
|
|
|
implementation 'org.bouncycastle:bcprov-jdk18on:1.77'
|
|
|
|
implementation 'org.bouncycastle:bcpkix-jdk18on:1.77'
|
2024-02-01 23:40:36 +01:00
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-actuator:3.2.2'
|
2024-02-17 14:23:10 +01:00
|
|
|
implementation 'io.micrometer:micrometer-core:1.12.3'
|
2023-09-06 23:24:15 +02:00
|
|
|
implementation group: 'com.google.zxing', name: 'core', version: '3.5.2'
|
2023-08-01 01:03:13 +02:00
|
|
|
// https://mvnrepository.com/artifact/org.commonmark/commonmark
|
2023-10-31 18:58:40 +01:00
|
|
|
implementation 'org.commonmark:commonmark:0.21.0'
|
2024-01-08 13:29:42 +01:00
|
|
|
implementation 'org.commonmark:commonmark-ext-gfm-tables:0.21.0'
|
2023-08-13 02:12:29 +02:00
|
|
|
// https://mvnrepository.com/artifact/com.github.vladimir-bukhtoyarov/bucket4j-core
|
2023-10-31 18:58:40 +01:00
|
|
|
implementation 'com.github.vladimir-bukhtoyarov:bucket4j-core:7.6.0'
|
|
|
|
|
2024-02-01 23:40:36 +01:00
|
|
|
developmentOnly("org.springframework.boot:spring-boot-devtools:3.2.2")
|
2023-12-18 15:58:06 +01:00
|
|
|
compileOnly 'org.projectlombok:lombok:1.18.30'
|
2023-10-31 18:58:40 +01:00
|
|
|
annotationProcessor 'org.projectlombok:lombok:1.18.28'
|
2023-01-27 19:23:40 +01:00
|
|
|
}
|
|
|
|
|
2023-12-30 20:37:46 +01:00
|
|
|
tasks.withType(JavaCompile) {
|
|
|
|
dependsOn 'spotlessApply'
|
|
|
|
}
|
2024-01-13 01:37:19 +01:00
|
|
|
compileJava {
|
2024-01-13 01:55:43 +01:00
|
|
|
options.compilerArgs << '-parameters'
|
2024-01-13 01:37:19 +01:00
|
|
|
}
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2023-06-03 23:56:15 +02:00
|
|
|
task writeVersion {
|
|
|
|
def propsFile = file('src/main/resources/version.properties')
|
|
|
|
def props = new Properties()
|
|
|
|
props.setProperty('version', version)
|
|
|
|
props.store(propsFile.newWriter(), null)
|
|
|
|
}
|
|
|
|
|
2023-06-04 00:21:12 +02:00
|
|
|
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
|
2023-06-03 23:56:15 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-06-04 00:21:12 +02:00
|
|
|
|
2023-01-29 15:10:12 +01:00
|
|
|
jar {
|
|
|
|
enabled = false
|
2023-03-20 22:55:11 +01:00
|
|
|
manifest {
|
|
|
|
attributes 'Implementation-Title': 'Stirling-PDF',
|
|
|
|
'Implementation-Version': project.version
|
|
|
|
}
|
2023-10-31 18:58:40 +01:00
|
|
|
|
2023-01-29 15:10:12 +01:00
|
|
|
}
|
|
|
|
|
2023-01-27 19:23:40 +01:00
|
|
|
tasks.named('test') {
|
2023-12-30 03:34:36 +01:00
|
|
|
useJUnitPlatform()
|
2023-01-27 19:23:40 +01:00
|
|
|
}
|
2023-01-29 18:06:53 +01:00
|
|
|
|
2023-01-27 19:23:40 +01:00
|
|
|
task printVersion {
|
|
|
|
println project.version
|
|
|
|
}
|