plugins {
	id 'java'
	id 'org.springframework.boot' version '3.4.6'
	id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(17)
	}
}

repositories {
	mavenCentral()
	maven { url 'https://repo.spring.io/snapshot' }
}

ext {
	springCloudVersion = '2024.0.1'
	springFunctionsCatalogVersion = '5.1.0'
}

dependencyManagement {
	imports {
		mavenBom "org.springframework.cloud:spring-cloud-dependencies:$springCloudVersion"
		mavenBom "org.springframework.cloud.fn:spring-functions-catalog-bom:$springFunctionsCatalogVersion"
	}
}

dependencies {
	implementation 'org.springframework.cloud:spring-cloud-stream-binder-rabbit'
	implementation 'org.springframework.integration:spring-integration-zip'
	implementation 'org.springframework.cloud.fn:spring-file-supplier'
	implementation 'org.springframework.cloud.fn:spring-splitter-function'

	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'org.springframework.boot:spring-boot-testcontainers'
	testImplementation 'org.testcontainers:junit-jupiter'
	testImplementation 'org.testcontainers:rabbitmq'

	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
	useJUnitPlatform()
}
