plugins {
	id 'java'
	id 'org.springframework.boot' version '3.0.5'
	id 'io.spring.dependency-management' version '1.1.4'
	id "jacoco"
}

group = 'test'
version = 'latest'

java {
	sourceCompatibility = '17'
}

jar {
	archiveFileName = "test-reports.jar"
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	if (Boolean.getBoolean("build-in-runner")) {
		maven {
			url = "https://test.maven.test/artifactory/maven/"
		}
	} else {
		mavenLocal()
		mavenCentral()
	}
	maven {
		var env = System.getenv()

		url = uri(env["LIBRARY_URL"] ?: "https://test.maven.test/artifactory/maven-test-dev")
		credentials {
			username = env["LIBRARY_USER"] ?: "maven-test-dev"
						// ruleid: build-gradle-password-hardcoded
            password = env["LIBRARY_PASS"] ?: "jWnyxxxxxxxxxxX7ZQxxxxxxxx"
 
            username = env["LIBRARY_USER_2"] ?: "maven-second-dev"
            // ok: build-gradle-password-hardcoded
            password = env["LIBRARY_PASS_2"]

			username = env["LIBRARY_USER_3"] ?: "maven-test-dev"
						// ruleid: build-gradle-password-hardcoded
            password = env["LIBRARY_PASS_3"] ?: "somerandomstring"
			
		}
	}
}

dependencyManagement {
	imports {
		mavenBom 'de.codecentric:spring-boot-admin-dependencies:3.2.1'
	}
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-validation'
	implementation 'org.springframework.kafka:spring-kafka'
	implementation 'de.codecentric:spring-boot-admin-starter-client'
	implementation 'org.springframework.boot:spring-boot-starter-actuator'
	implementation 'org.apache.commons:commons-lang3:3.11'
	implementation "software.amazon.awssdk:s3-transfer-manager:2.20.109"
	implementation 'io.swagger.core.v3:swagger-core-jakarta:2.2.15'
	implementation "org.springframework.boot:spring-boot-starter-webflux"
	implementation "com.vladmihalcea:hibernate-types-60:2.21.1"
	implementation 'com.opencsv:opencsv:5.0'
	implementation 'com.google.guava:guava:18.0'
	implementation 'org.apache.tika:tika-parsers:1.2'
	implementation 'commons-io:commons-io:2.10.0'
	implementation 'org.mapstruct:mapstruct:1.4.2.Final'
	implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
	implementation("io.minio:minio:8.5.6")
	implementation 'org.postgresql:postgresql:42.3.7'
	implementation 'org.springframework.ws:spring-ws-core:4.0.10'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	annotationProcessor 'org.hibernate.orm:hibernate-jpamodelgen:6.1.6.Final'
	annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'org.springframework.kafka:spring-kafka-test'
}

jacoco {
	toolVersion = "0.8.7"
}

jacocoTestReport {
	dependsOn test
}

test {
	testLogging {
		exceptionFormat = "FULL"
		events = ["FAILED", "STANDARD_ERROR"]
	}
	finalizedBy jacocoTestReport
}

springBoot {
	buildInfo()
}
