plugins {
    id 'java'
}

repositories {
    mavenLocal()
    maven { url "https://artifactory.cronapp.io/public-release/" }
    maven { url "https://repo1.maven.org/maven2/" }
    maven { url "https://www2.ph.ed.ac.uk/maven2/" }
    maven { url "https://jitpack.io/" }
    exclusiveContent {
        forRepository {
            maven {
                url = uri("https://jitpack.io")
            }
        }
        filter {
            // Only use JitPack for the `gson-record-type-adapter-factory` library
            includeModule("com.github.Marcono1234", "gson-record-type-adapter-factory")
        }
    }
}

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(17))
    }
}

dependencies {
    implementation 'junit:junit:4.13.2'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

    implementation 'org.projectlombok:lombok:1.18.22'
    annotationProcessor 'org.projectlombok:lombok:1.18.22'

    testCompileOnly 'org.projectlombok:lombok:1.18.22'
    testImplementation 'org.projectlombok:lombok:1.18.22'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'

    implementation 'com.github.jknack:handlebars:4.3.0'
    implementation 'com.github.jknack:handlebars-markdown:4.2.1'

    implementation group: 'com.google.code.gson', name: 'gson', version: '2.9.0'
    implementation 'io.reactivex.rxjava3:rxjava:3.1.4'
    implementation "com.sparkjava:spark-core:2.9.3"
    implementation 'com.opencsv:opencsv:5.6'

    implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1'
    implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.17.1'
    implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.17.1'
    implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1'
    implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.17.1'
    implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.17.1'

    implementation 'org.slf4j:slf4j-api:1.7.36'

    implementation 'com.google.guava:guava:31.1-jre'
    implementation 'com.google.inject:guice:5.1.0'
    implementation 'com.github.jnr:jnr-ffi:2.1.1'
    implementation 'org.apache.httpcomponents:httpcore:4.4.15'
    implementation 'org.apache.httpcomponents:httpclient:4.5.13'
    implementation 'com.github.ThatJavaNerd:JRAW:1.1.0'

    implementation group: 'com.h2database', name: 'h2', version: '2.1.210'
    testImplementation group: 'org.mockito', name: 'mockito-core', version: '4.3.1'

    implementation 'org.jsoup:jsoup:1.14.3'
    implementation group: 'com.github.crawler-commons', name: 'crawler-commons', version: '1.2'

    implementation 'org.mariadb.jdbc:mariadb-java-client:3.0.3'
    implementation group: 'net.sf.trove4j', name: 'trove4j', version: '3.0.3'

    implementation 'com.zaxxer:HikariCP:5.0.1'

    implementation 'org.apache.opennlp:opennlp-tools:1.9.4'
    implementation 'io.prometheus:simpleclient:0.15.0'
    implementation 'io.prometheus:simpleclient_servlet:0.15.0'
    implementation 'io.prometheus:simpleclient_httpserver:0.15.0'
    implementation 'io.prometheus:simpleclient_hotspot:0.15.0'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2.1'
    implementation 'org.apache.opennlp:opennlp-tools:1.9.4'
    implementation 'io.prometheus:simpleclient:0.15.0'
    implementation 'io.prometheus:simpleclient_servlet:0.15.0'
    implementation 'io.prometheus:simpleclient_httpserver:0.15.0'
    implementation 'io.prometheus:simpleclient_hotspot:0.15.0'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2.1'

    implementation group: 'org.yaml', name: 'snakeyaml', version: '1.30'

    implementation 'com.syncthemall:boilerpipe:1.2.2'
    implementation 'com.github.luben:zstd-jni:1.5.2-2'
    implementation 'com.github.vladimir-bukhtoyarov:bucket4j-core:7.3.0'
    implementation 'de.rototor.jeuclid:jeuclid-core:3.1.14'

    implementation 'org.imgscalr:imgscalr-lib:4.2'
    implementation 'org.jclarion:image4j:0.7'

    implementation 'commons-net:commons-net:3.6'
    implementation 'org.eclipse.jgit:org.eclipse.jgit:5.12.0.202106070339-r'
    implementation 'org.eclipse.jgit:org.eclipse.jgit.ssh.jsch:5.12.0.202106070339-r'
    implementation 'com.jcraft:jsch:0.1.55'

    implementation group: 'org.apache.commons', name: 'commons-compress', version: '1.21'
    implementation 'edu.stanford.nlp:stanford-corenlp:4.4.0'

    implementation group: 'it.unimi.dsi', name: 'fastutil', version: '8.5.8'
    implementation 'org.roaringbitmap:RoaringBitmap:[0.6,)'
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.29'

    implementation 'com.github.Marcono1234:gson-record-type-adapter-factory:0.2.0'
}

test {
    useJUnitPlatform()
}
