plugins {
    id 'java'
    id "io.freefair.lombok" version "5.3.3.3"
    id 'com.palantir.docker' version '0.34.0'
    id 'application'
    id 'jvm-test-suite'
}

application {
    mainClass = 'nu.marginalia.search.SearchMain'
    applicationName = 'search-service'
}

tasks.distZip.enabled = false

apply from: "$rootProject.projectDir/docker-service.gradle"

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(17))
    }
}
dependencies {
    implementation project(':code:common:model')
    implementation project(':code:common:service')
    implementation project(':code:common:config')
    implementation project(':code:features-index:index-query')

    implementation project(':code:libraries:easy-lsh')
    implementation project(':code:libraries:language-processing')
    implementation project(':code:libraries:braille-block-punch-cards')
    implementation project(':code:libraries:term-frequency-dict')

    implementation project(':code:api:assistant-api')
    implementation project(':code:api:index-api')
    implementation project(':code:api:search-api')
    implementation project(':code:common:service-discovery')
    implementation project(':code:common:service-client')
    implementation project(':code:common:renderer')

    implementation project(':code:features-search:screenshots')
    implementation project(':code:features-search:random-websites')
    implementation project(':code:features-search:query-parser')
    implementation project(':code:features-search:result-ranking')


    implementation libs.lombok
    annotationProcessor libs.lombok
    implementation libs.bundles.slf4j

    implementation libs.prometheus
    implementation libs.notnull
    implementation libs.guice
    implementation libs.rxjava
    implementation libs.spark
    implementation libs.opencsv
    implementation libs.trove
    implementation libs.fastutil
    implementation libs.bundles.gson
    implementation libs.bundles.mariadb
    implementation libs.bundles.nlp

    testImplementation libs.bundles.slf4j.test
    testImplementation libs.bundles.junit
    testImplementation libs.mockito

}
test {
    maxHeapSize = "8G"
    useJUnitPlatform()
}

task fastTests(type: Test) {
    maxHeapSize = "8G"
    useJUnitPlatform {
        excludeTags "slow"
    }
}

