/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java application project to get you started.
 * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
 * User Manual available at https://docs.gradle.org/8.1.1/userguide/building_java_projects.html
 */

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    id 'application'
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

configurations {
    servlet
}

def appmapJar = findProperty("appmapJar")

dependencies {
    compileOnly project(':lib')

    servlet 'javax.servlet:servlet-api:2.5'

    // Use JUnit Jupiter for testing.
    testImplementation 'org.junit.jupiter:junit-jupiter:5.9.1'

    // This dependency is used by the application.
    implementation 'com.google.guava:guava:31.1-jre'
    implementation files(appmapJar)
}

// Apply a specific Java toolchain to ease working on different environments.
java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(8)
    }
}


application {
    // Define the main class for the application.
    mainClass = 'com.appland.appmap.test.fixture.Runner'
    def libJar = tasks.getByPath(':lib:jar').outputs.files.singleFile
    applicationDefaultJvmArgs += [
      "-javaagent:${appmapJar}",
      /*"-Dsun.misc.URLClassPath.debug",*/
      "-DtestJars=${configurations.servlet.asPath};${libJar}",
      "-Djava.util.logging.config.file=${System.env.JUL_CONFIG}"
    ]
}

tasks.named('test') {
    println configurations.servlet.asPath
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}
