apply plugin: 'kotlin'
apply plugin: 'application'

mainClassName = 'net.corda.loadtest.MainKt'

dependencies {
    compile project(':client:mock')
    compile project(':client:rpc')
    compile project(':node-driver')

    // https://mvnrepository.com/artifact/com.jcraft/jsch
    compile group: 'com.jcraft', name: 'jsch', version: '0.1.54'
    compile group: 'com.jcraft', name: 'jsch.agentproxy.core', version: '0.0.9'
    compile group: 'com.jcraft', name: 'jsch.agentproxy.sshagent', version: '0.0.9'
    compile group: 'com.jcraft', name: 'jsch.agentproxy.usocket-jna', version: '0.0.9'

    // https://mvnrepository.com/artifact/de.danielbechler/java-object-diff
    compile group: 'de.danielbechler', name: 'java-object-diff', version: '0.10.2'

    // TypeSafe Config: for simple and human friendly config files.
    compile "com.typesafe:config:$typesafe_config_version"
}

run {
    if (project.hasProperty('loadtest-config')) {
        args project["loadtest-config"]
    }
    System.properties.forEach { k, v ->
        if (k.toString().startsWith("loadtest."))
            systemProperty k, v
    }
    if (System.properties.getProperty('consoleLogLevel') != null) {
        logging.captureStandardOutput(LogLevel.valueOf(System.properties.getProperty('consoleLogLevel')))
        logging.captureStandardError(LogLevel.valueOf(System.properties.getProperty('consoleLogLevel')))
        systemProperty "consoleLogLevel", System.properties.getProperty('consoleLogLevel')
    }
}

jar {
    manifest {
        attributes(
                'Automatic-Module-Name': 'net.corda.tools.loadtest'
        )
    }
}