group = 'io.opentelemetry.instrumentation'

apply from: "$rootDir/gradle/java.gradle"
apply from: "$rootDir/gradle/publish.gradle"

sourceCompatibility = '8'

dependencies {
  implementation group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version: versions.springboot
  annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-autoconfigure-processor', version: versions.springboot
  implementation group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'

  compileOnly group: 'org.springframework.boot', name: 'spring-boot-starter-aop', version: versions.springboot
  compileOnly group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: versions.springboot
  compileOnly group: 'org.springframework.boot', name: 'spring-boot-starter-webflux', version: versions.springboot
  implementation project(':instrumentation:spring:spring-web-3.1:library')
  implementation project(':instrumentation:spring:spring-webmvc-3.1:library')
  implementation project(':instrumentation:spring:spring-webflux-5.0:library')

  compileOnly deps.opentelemetryExtAnnotations
  compileOnly group: 'io.grpc', name: 'grpc-api', version: '1.30.2'
  compileOnly deps.opentelemetryLogging
  compileOnly deps.opentelemetryJaeger
  compileOnly deps.opentelemetryOtlp
  compileOnly deps.opentelemetryZipkin

  testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-aop', version: versions.springboot
  testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-webflux', version: versions.springboot
  testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: versions.springboot
  testImplementation(group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: versions.springboot) {
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
  }

  testImplementation deps.opentelemetrySdk
  testImplementation deps.opentelemetryExtAnnotations
  testImplementation group: 'io.grpc', name: 'grpc-api', version: '1.30.2'
  testImplementation group: 'io.grpc', name: 'grpc-netty-shaded', version: '1.30.2'
  testImplementation deps.opentelemetryLogging
  testImplementation deps.opentelemetryJaeger
  testImplementation deps.opentelemetryOtlp
  testImplementation deps.opentelemetryZipkin
}
