buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
    }
}

plugins {
    id 'java-library'
}

group = "${projectGroup}"
version = "${projectVersion}"

sourceCompatibility = 8

apply plugin: "org.springframework.boot"
springBoot {
    mainClassName = "com.nanostring.visualization.Main"
}

apply plugin: "io.spring.dependency-management"

dependencies {
    implementation ("org.springframework.boot:spring-boot-dependencies:${springBootVersion}")
    implementation "org.springframework.boot:spring-boot-starter-web:${springBootVersion}"
    implementation "org.springframework.boot:spring-boot-starter-tomcat:${springBootVersion}"

    //security
    implementation('org.pac4j:spring-webmvc-pac4j:3.2.0')
    implementation('org.pac4j:pac4j-oidc:3.8.3')
    implementation('org.pac4j:pac4j-http:3.8.3')
    implementation('com.nanostring:oidc-utils-spring:0.1.4')

    implementation ("com.nanostring:properties-loader:0.1.2") {
        exclude group: 'org.slf4j', module: 'slf4j-api'
        exclude group: 'org.slf4j', module: 'slf4j-log4j12'
        exclude group: 'log4j', module: 'log4j'
    }

    implementation "org.apache.commons:commons-lang3:3.8.1"
    implementation "com.google.guava:guava:28.0-jre"

    implementation "commons-io:commons-io:2.6"
    implementation "com.amazonaws:aws-java-sdk-s3:1.11.288"

    implementation "de.lmu.ifi.dbs.elki:elki:0.7.5"
    implementation "org.apache.commons:commons-math3:3.6.1"
    implementation "com.google.code.gson:gson:2.8.5"
    implementation "org.apache.poi:poi:4.1.0"
    implementation "org.apache.poi:poi-ooxml:4.1.0"

    testImplementation "org.junit.jupiter:junit-jupiter-api:5.3.2"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.3.2"
    testImplementation "org.junit.jupiter:junit-jupiter-params:5.3.2"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-params:5.3.2"

    testImplementation "org.springframework.boot:spring-boot-starter-test:${springBootVersion}"

    testImplementation "org.junit.jupiter:junit-jupiter-api:5.3.2"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.3.2"

    implementation "com.fasterxml.jackson.core:jackson-annotations:2.9.8"
}

apply plugin: "maven-publish"
publishing {
    publications {
        maven(MavenPublication) {
            groupId = "${projectGroup}"
            artifactId = 'visualization-service'
            version = "${projectVersion}"
            from components.java
        }
    }

    repositories {
        maven {
            url "http://ec2-18-233-224-170.compute-1.amazonaws.com:8080/repository/release/"
            credentials {
                username "admin"
                password "Seattle-b1o"
            }
        }
    }
}
