/*
 * Gradle build configuration for specific lab module / exercise
 */
// enabled plugins
plugins {
    id 'java'
    // Apply the application plugin to add support for building a CLI application.
    id 'application'
}

// Project/Module information
description = 'Lab04 Philosopher'
group = 'ch.zhaw.prog2'
version = '2022.1'

// Dependency configuration
repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.+'
    testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.+'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.+'
    testImplementation 'org.mockito:mockito-core:4.3.1'
}

// Test task configuration
test {
    // Use JUnit platform for unit tests
    useJUnitPlatform()
    testLogging {
        events "PASSED", "SKIPPED", "FAILED"
    }
}

// Configuration for Application plugin
application {
    // Define the main class for the application.
    mainClass = 'ch.zhaw.prog2.philosopher.PhilosopherGui'
}

// Java plugin configuration
java {
    // By default the Java version of the gradle process is used as source/target version.
    // This can be overridden, to ensure a specific version. Enable only if required.
    // sourceCompatibility = JavaVersion.VERSION_17 // ensure Java source code compatibility
    // targetCompatibility = JavaVersion.VERSION_17 // version of the created byte-code

    // Java compiler specific options
    compileJava {
        // source files should be UTF-8 encoded
        options.encoding = 'UTF-8'
        // for more options see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html
    }
}