group 'io.mifos.anubis'
version '0.1.0-BUILD-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'maven-publish'
apply plugin: 'io.spring.dependency-management'


ext.versions = [
        frameworktest       : '0.1.0-BUILD-SNAPSHOT',
        frameworkapi        : '0.1.0-BUILD-SNAPSHOT',
        frameworkcassandra  : '0.1.0-BUILD-SNAPSHOT',
        frameworklang       : '0.1.0-BUILD-SNAPSHOT',
        jjwt                : '0.6.0',
        hibernatevalidator  : '5.3.0.Final'
]

tasks.withType(JavaCompile) {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

repositories {
    jcenter()
    mavenLocal()
}

configurations {
    compile.exclude group: 'io.mifos.core', module: 'mariadb'
    compile.exclude group: 'ch.vorburger', module: 'mariaDB4j'
}

dependencyManagement {
    imports {
        mavenBom 'io.spring.platform:platform-bom:Athens-RELEASE'
        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Camden.SR1'
    }
}

// override certain dependency provided by Spring platform using newer releases
ext['cassandra.version'] = '3.6'
ext['cassandra-driver.version'] = '3.1.2'
ext['activemq.version'] = '5.13.2'
ext['spring-data-releasetrain.version'] = 'Gosling-SR2A'

dependencies {
    compile(
            [group: 'com.google.code.findbugs', name: 'jsr305']
    )

    testCompile(
            [group: 'org.springframework.boot', name: 'spring-boot-starter-test'],
            [group: 'io.mifos.core', name: 'test', version: versions.frameworktest],
    )
}

jar {
    from sourceSets.main.allSource
}

license {
    header rootProject.file('../HEADER')
    strictCheck true
    mapping {
        java = 'SLASHSTAR_STYLE'
        xml = 'XML_STYLE'
        yml = 'SCRIPT_STYLE'
        yaml = 'SCRIPT_STYLE'
    }
    ext.year = Calendar.getInstance().get(Calendar.YEAR)
    ext.name = 'The Mifos Initiative'
}

task ci(dependsOn: ['clean', 'test', 'publish'])
