plugins {
	id 'org.springframework.boot' version '2.7.18'
	id 'io.spring.dependency-management' version '1.1.4'
	id 'java'
	id 'war'
	id 'eclipse' // optional (to generate Eclipse project files)
	id 'idea' // optional (to generate IntelliJ IDEA project files)
	id "com.google.cloud.tools.jib" version "3.3.1"
}

group = 'oss.fosslight'
version = '2.3.0'

sourceCompatibility = '11'

configurations {
	developmentOnly
	runtimeClasspath {
		extendsFrom developmentOnly
	}
	compileOnly {
		extendsFrom annotationProcessor
	}
	compile {
		exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
	}
}

repositories {
	mavenCentral()
}

test {
	maxHeapSize="2048m"
	useJUnitPlatform()
}

processResources {
    filesMatching('**/application.properties') {
        expand(project.properties)
    }
}

bootWar.enabled = true // (1)
war.enabled = false  // (2)

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-batch'
	implementation 'org.springframework.boot:spring-boot-starter-cache'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-integration'
	implementation 'org.springframework.boot:spring-boot-starter-mail'
	implementation 'org.springframework.boot:spring-boot-starter-quartz'
	implementation 'org.springframework.boot:spring-boot-starter-security'
	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
	implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-webflux'
	implementation 'org.springframework.session:spring-session-core'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	annotationProcessor 'org.projectlombok:lombok'
	providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
	testImplementation('org.springframework.boot:spring-boot-starter-test') {
		exclude module: 'junit'
	}
	testImplementation('org.springframework.security:spring-security-test')

	testImplementation(platform('org.junit:junit-bom:5.10.0'))
	testImplementation('org.junit.jupiter:junit-jupiter')

	implementation 'javax.cache:cache-api:1.1.1'
	implementation 'org.ehcache:ehcache:3.10.8'
	
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect'
	
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.2'
	implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
	runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
	implementation 'org.postgresql:postgresql:42.7.2'
	
	implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.14.0'
	implementation group: 'org.apache.commons', name: 'commons-text', version: '1.11.0'
	
	implementation group: 'org.apache.poi', name: 'poi', version: '5.2.3'
	implementation group: 'org.apache.poi', name: 'poi-excelant', version: '5.2.3'
	implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '5.2.3'
	implementation group: 'org.apache.poi', name: 'poi-scratchpad', version: '5.2.3'
	
	implementation group: 'commons-codec', name: 'commons-codec', version: '1.16.1'
	implementation group: 'commons-io', name: 'commons-io', version: '2.15.1'
	implementation group: 'joda-time', name: 'joda-time', version: '2.12.7'
	
	implementation group: 'com.google.guava', name: 'guava', version: '32.1.3-jre'
	implementation group: 'com.google.code.gson', name: 'gson', version: '2.10.1'
	
	implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.16.1'
	implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.16.1'
	implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.16.1'
	implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.16.1'
	
	implementation group: 'org.json', name: 'json', version: '20231013'

	implementation group: 'com.jcraft', name: 'jsch', version: '0.1.55'
	implementation group: 'com.opencsv', name: 'opencsv', version: '5.9'
	implementation group: 'org.jsoup', name: 'jsoup', version: '1.17.2'
	implementation group: 'com.googlecode.java-diff-utils', name: 'diffutils', version: '1.3.0'
	implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
    implementation 'io.springfox:springfox-swagger-ui:3.0.0'
	implementation group: 'net.sf.sociaal', name: 'xmlpull-xpp3', version: '3.0.0.20130526'
	implementation group: 'org.spdx', name: 'tools-java', version: '1.1.8'
	implementation group: 'com.navercorp.lucy', name: 'lucy-xss', version: '1.6.3'
	implementation 'com.itextpdf:html2pdf:4.0.3'

	implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.12.3'
	runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.12.3'
	runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.12.3'
	
	implementation group: 'org.springframework.ldap', name: 'spring-ldap-core', version: '2.3.8.RELEASE'
	
	implementation group: 'org.cyclonedx', name: 'cyclonedx-core-java', version: '10.1.0'

	implementation group: 'com.itextpdf', name: 'itextpdf', version: '5.5.13.3'

	implementation 'org.springframework.boot:spring-boot-starter-validation'
	
	implementation files('libs/tlsh-4.6.0.jar')
}
