plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.0'
	id 'io.spring.dependency-management' version '1.1.0'
	id 'org.springdoc.openapi-gradle-plugin' version '1.6.0'
	id "io.swagger.swaggerhub" version "1.1.0"
	id 'edu.sc.seis.launch4j' version '3.0.1'
}

group = 'stirling.software'
version = '0.10.1'
sourceCompatibility = '17'

repositories {
	mavenCentral()
}

openApi {
    apiDocsUrl = "http://localhost:8080/v3/api-docs"
    outputDir = file("$projectDir")
    outputFileName = "SwaggerDoc.json"
}


launch4j {
  icon = "${projectDir}/src/main/resources/static/favicon.ico"

  outfile="Stirling-PDF.exe"
  headerType="console"
  jarTask = tasks.bootJar
  
  errTitle="Encountered error, Do you have Java 17?"
  downloadUrl="https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe" 
  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 17."
  messagesLauncherError="Java is corrupted. Please uninstall and then install  Java 17."
  messagesInstanceAlreadyExists="Stirling-PDF is already running."
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web:3.1.0'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:3.1.0'
	testImplementation 'org.springframework.boot:spring-boot-starter-test:3.1.0'
	// https://mvnrepository.com/artifact/org.apache.pdfbox/jbig2-imageio
	implementation group: 'org.apache.pdfbox', name: 'jbig2-imageio', version: '3.0.4'
	implementation 'commons-io:commons-io:2.11.0'
	
    implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'
    
	//general PDF
    implementation 'org.apache.pdfbox:pdfbox:2.0.28'
    implementation 'org.bouncycastle:bcprov-jdk15on:1.70'
    implementation 'org.bouncycastle:bcpkix-jdk15on:1.70' 
    implementation 'com.itextpdf:itext7-core:7.2.5'
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'io.micrometer:micrometer-core'
    
    developmentOnly("org.springframework.boot:spring-boot-devtools")

}

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 {
  println project.version
}