allprojects {
    apply plugin: 'idea'
}

idea {
    project {
        languageLevel = '1.7'
		ipr {
			withXml { provider ->
			        provider.node.component
			                .find { it.@name == 'VcsDirectoryMappings' }
			                .mapping.@vcs = 'Git'
			    }
		}
    }
}

subprojects {

    apply plugin: 'java'
    apply plugin: 'application'
    apply from: "$rootDir/gradle/spock.gradle"
    apply from: "$rootDir/gradle/quality.gradle"

    sourceCompatibility = '1.7'
    targetCompatibility = '1.7'

    [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

    mainClassName = "com.ebay.myriad.Main"

    group = "com.ebay.myriad"
    version = "0.0.1"

    ext {
        mesosVer = "0.21.1"
        hadoopVer = "2.5.0"
        metricsVer = "3.1.0"
    }

    configurations.create('myriadExecutorConf')

    configurations {
        provided
        capsule
        myriadExecutorConf
        myriadExecutorConf.transitive = false
        // exclude hadoop/yarn deps for 'runtime'
        runtime.exclude group: 'org.apache.hadoop', module: '*'
    }

    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        capsule "co.paralleluniverse:capsule:0.7.1"
    	myriadExecutorConf 'org.slf4j:slf4j-log4j12:1.7.10'

        compile "org.apache.mesos:mesos:${mesosVer}"
        compile 'com.google.code.gson:gson:2.3.1'        // marshalling between the scheduler and executor


        testCompile 'junit:junit:4.12'
        testCompile 'commons-collections:commons-collections:3.2.1'
    }


    run {
        systemProperty "myriad.config", "build/resources/main/myriad-config-default.yml"
    }
}
