/*
 * Copyright 2019 Scott Logic Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * This file was generated by the Gradle "init" task.
 */
dependencies {
    implementation project(":common")
    implementation project(":custom")
    implementation project(":core")
    implementation group: "org.apache.commons", name: "commons-csv", version: "${COMMONS_CSV_VERSION}"
    implementation group: "commons-io", name: "commons-io", version: "${COMMONS_IO_VERSION}"
    implementation group: "com.google.inject", name: "guice", version: "${GUICE_VERSION}"
    implementation "com.worldturner.medeia:medeia-validator-jackson:${MEDEIA_VALIDATOR_JACKSON_VERSION}"
    implementation "org.leadpony.justify:justify:${LEADPONY_JUSTIFY_VERSION}"
    implementation "org.glassfish:javax.json:${GLASSFISH_VERSION}"
    implementation "com.fasterxml.jackson.core:jackson-core:${JACKSON_VERSION}"
    implementation "com.fasterxml.jackson.core:jackson-annotations:${JACKSON_VERSION}"
    implementation "com.fasterxml.jackson.core:jackson-databind:${JACKSON_VERSION}"
    implementation "com.github.javafaker:javafaker:${FAKER_VERSION}"
    implementation ('org.yaml:snakeyaml') {
        version {
            require '1.26'
        }
    }

    constraints {
        implementation('com.google.guava:guava:30.0-jre') {
            because 'Versions prior to 30.0 are impacted by CVE-2020-8908'
        }
        implementation('com.google.guava:guava:30.0-android') {
            because 'Versions prior to 30.0 are impacted by CVE-2020-8908'
        }
    }

    testImplementation project(":common").sourceSets.test.output
    testImplementation "org.junit.jupiter:junit-jupiter-api:${JUNIT_JUPITER_VERSION}"
    testImplementation "junit:junit:${JUNIT_4_VERSION}"
    testImplementation "org.junit.platform:junit-platform-runner:${JUNIT_PLATFORM_RUNNER_VERSION}"
    testImplementation "org.junit.vintage:junit-vintage-engine:${JUNIT_JUPITER_VERSION}"
    testImplementation "org.hamcrest:java-hamcrest:${HAMCREST_VERSION}"
    testImplementation "org.junit.jupiter:junit-jupiter-params:${JUNIT_PLATFORM_RUNNER_VERSION}"
    testImplementation "org.junit.jupiter:junit-jupiter-engine:${JUNIT_JUPITER_VERSION}"
    testImplementation "com.shazam:shazamcrest:${SHAZAMCREST_VERSION}"
    testImplementation "org.mockito:mockito-junit-jupiter:${MOCKITO_JUNIT_JUPITER_VERSION}"
    testImplementation("org.junit.jupiter:junit-jupiter:${JUNIT_JUPITER_VERSION}")
    testImplementation "org.threeten:threeten-extra:${THREE_TEN_VERSION}"

    testImplementation project(":core").sourceSets.test.output

    implementation('org.jetbrains.kotlin:kotlin-stdlib') {
        version {
            strictly "1.3.30"
        }
        because "Security issue with 1.3.20"
    }
    implementation('org.jetbrains.kotlin:kotlin-stdlib-common') {
        version {
            strictly "1.3.30"
        }
        because "Security issue with 1.3.20"
    }
    implementation('org.jetbrains.kotlin:kotlin-reflect') {
        version {
            strictly "1.3.30"
        }
        because "Security issue with 1.3.20"
    }

}

test {
    useJUnitPlatform()
}

group "com.scottlogic.datahelix.generator"

description = "DataHelix Schema Library"


task release() {
    jar.manifest {
        attributes "Created-By": "Scott Logic",
            "Implementation-Version": version != null ? version : "0.0"
    }

    jar
}