plugins {
    id 'storage-plugin' // buildSrc/src/main/groovy/storage-plugin.gradle
}

dependencies {
    internal platform(project(":platform")) // all library versions should be specified in the platform project
    api project(':storage-plugins:s3-storage-model')
    implementation project(':ecs-sync-core')
    implementation 'com.amazonaws:aws-java-sdk-s3'
    implementation 'com.amazonaws:aws-java-sdk-sts'
    implementation 'com.emc.ecs:object-client'
    implementation "com.emc.ecs:object-transform"
    implementation "com.emc.ecs:smart-client-ecs"
    // TODO: decouple this (generalize object versions)
    implementation project(':storage-plugins:azure-storage')
    implementation "org.slf4j:slf4j-api"
    // jaxb was removed from Java 11 - jaxb dependencies are provided with Java 8
    implementation "javax.xml.bind:jaxb-api"

    testImplementation 'org.junit.jupiter:junit-jupiter-api'
    testImplementation project(':storage-plugins:filesystem-storage') // to test syncing to/from filesystem
    testImplementation testFixtures(project(':ecs-sync-core'))
    testImplementation testFixtures(project(':ecs-sync-cli'))
    testImplementation 'com.sun.jersey:jersey-server' // for ECS S3 mock service
    testImplementation 'com.amazonaws:aws-java-sdk-iam' // to create alternate users for access tests
    testImplementation 'com.amazonaws:aws-java-sdk-sts' // for temp cred testing until supported in ECS SDK
    testImplementation 'com.sun.jersey.contribs:jersey-apache-client4'

    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
    testRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl'
}

test {
    useJUnitPlatform()
    maxHeapSize = "2g"
}
