plugins {
  id 'java'
  id 'org.springframework.boot' version '3.1.0'
  id 'io.spring.dependency-management' version '1.1.0'
  id 'org.graalvm.buildtools.native' version '0.9.22'
}

apply plugin: 'java'

group = 'org.springframework.samples'
version = '3.1.0'
sourceCompatibility = '17'

repositories {
  mavenCentral()
}

ext.webjarsFontawesomeVersion = "4.7.0"
ext.webjarsBootstrapVersion = "5.2.3"

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-cache'
  implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
  implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
  implementation 'org.springframework.boot:spring-boot-starter-web'
  implementation 'org.springframework.boot:spring-boot-starter-validation'
  implementation 'javax.cache:cache-api'
  implementation 'jakarta.xml.bind:jakarta.xml.bind-api'
  implementation('io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations:1.28.0')
  implementation('io.opentelemetry:opentelemetry-api')
  implementation 'com.squareup.okhttp3:okhttp'
  implementation 'org.json:json:20171018'

  runtimeOnly 'org.springframework.boot:spring-boot-starter-actuator'
  runtimeOnly "org.webjars.npm:bootstrap:${webjarsBootstrapVersion}"
  runtimeOnly "org.webjars.npm:font-awesome:${webjarsFontawesomeVersion}"
  runtimeOnly 'com.github.ben-manes.caffeine:caffeine'
  runtimeOnly 'com.h2database:h2'
  runtimeOnly 'com.mysql:mysql-connector-j'
  runtimeOnly 'org.postgresql:postgresql'
  developmentOnly 'org.springframework.boot:spring-boot-devtools'
  testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named("bootRun") {
    if (project.hasProperty('digma')) {
        def tempDir = System.getProperty("java.io.tmpdir")
        environment["JAVA_TOOL_OPTIONS"] = "-javaagent:${tempDir}/temp-digma-otel-jars/opentelemetry-javaagent.jar"
        systemProperty 'otel.exporter.otlp.traces.endpoint', 'http://localhost:5050'
        systemProperty 'otel.traces.exporter', 'otlp'
        systemProperty 'otel.metrics.exporter', 'none'
        systemProperty 'otel.service.name', "${project.name}"
        systemProperty 'otel.javaagent.extensions', "${tempDir}/temp-digma-otel-jars/digma-otel-agent-extension.jar"
    }
}
tasks.named('test') {
  useJUnitPlatform()
}
