apply plugin: 'io.spring.convention.spring-module'

description = "Spring Session and Spring MongoDB integration"

dependencies {
    management platform(project(":spring-session-dependencies"))

    api project(':spring-session-core')

    // Spring Data MongoDB

    api("org.springframework.data:spring-data-mongodb") {
        exclude group: "org.mongodb", module: "mongo-java-driver"
        exclude group: "org.slf4j", module: "jcl-over-slf4j"
    }

    // MongoDB dependencies

    optional "org.mongodb:mongodb-driver-core"
    testImplementation "org.mongodb:mongodb-driver-sync"
    testImplementation "org.mongodb:mongodb-driver-reactivestreams"
    testImplementation 'jakarta.websocket:jakarta.websocket-api'
    testImplementation 'jakarta.websocket:jakarta.websocket-client-api'
    integrationTestCompile "org.testcontainers:mongodb"

    // Everything else

    api "com.fasterxml.jackson.core:jackson-databind"
    api "org.springframework.security:spring-security-core"
    api "com.google.code.findbugs:jsr305"

    optional "io.projectreactor:reactor-core"

    testImplementation "org.springframework:spring-web"
    testImplementation "org.springframework:spring-webflux"
    testImplementation "org.springframework.security:spring-security-config"
    testImplementation "org.springframework.security:spring-security-web"
    testImplementation "org.assertj:assertj-core"
    testImplementation "org.junit.jupiter:junit-jupiter-engine"
    testImplementation "org.junit.jupiter:junit-jupiter-params"
    testImplementation "org.springframework:spring-test"
    testImplementation "org.hamcrest:hamcrest"
    testImplementation "ch.qos.logback:logback-core"
    testImplementation "org.mockito:mockito-core"
    testImplementation "org.mockito:mockito-junit-jupiter"
    testImplementation "io.projectreactor:reactor-test"
    testImplementation "jakarta.servlet:jakarta.servlet-api"
}
